summaryrefslogtreecommitdiff
path: root/plugins/Plugins.cmake
diff options
context:
space:
mode:
authorPetr Mrázek2011-09-02 01:25:01 +0200
committerPetr Mrázek2011-09-02 01:25:01 +0200
commit8cdeb0b59cb9ee52ab81a46d8d6f95e0f846fe01 (patch)
treee59028ea78e05f167b97476b231198359c55c0b9 /plugins/Plugins.cmake
parente48f8af9a889ebe96ed7eab0b79865b6b0e40cc1 (diff)
downloaddfhack-8cdeb0b59cb9ee52ab81a46d8d6f95e0f846fe01.tar.gz
dfhack-8cdeb0b59cb9ee52ab81a46d8d6f95e0f846fe01.tar.bz2
dfhack-8cdeb0b59cb9ee52ab81a46d8d6f95e0f846fe01.tar.xz
Add a salt/stagnant flag removal command to the liquids tool.
Diffstat (limited to 'plugins/Plugins.cmake')
-rw-r--r--plugins/Plugins.cmake77
1 files changed, 77 insertions, 0 deletions
diff --git a/plugins/Plugins.cmake b/plugins/Plugins.cmake
new file mode 100644
index 00000000..2caba999
--- /dev/null
+++ b/plugins/Plugins.cmake
@@ -0,0 +1,77 @@
+IF(UNIX)
+ add_definitions(-DLINUX_BUILD)
+ SET(CMAKE_CXX_FLAGS_DEBUG "-g -Wall")
+ SET(CMAKE_CXX_FLAGS "-fvisibility=hidden -m32 -std=c++0x")
+ SET(CMAKE_C_FLAGS "-fvisibility=hidden -m32")
+ENDIF()
+
+include_directories("${dfhack_SOURCE_DIR}/library/include")
+include_directories("${dfhack_SOURCE_DIR}/library/depends/xgetopt")
+
+MACRO(CAR var)
+ SET(${var} ${ARGV1})
+ENDMACRO()
+
+MACRO(CDR var junk)
+ SET(${var} ${ARGN})
+ENDMACRO()
+
+MACRO(LIST_CONTAINS var value)
+ SET(${var})
+ FOREACH (value2 ${ARGN})
+ IF (${value} STREQUAL ${value2})
+ SET(${var} TRUE)
+ ENDIF()
+ ENDFOREACH()
+ENDMACRO()
+
+MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
+ SET(DEFAULT_ARGS)
+ FOREACH(arg_name ${arg_names})
+ SET(${prefix}_${arg_name})
+ ENDFOREACH()
+
+ FOREACH(option ${option_names})
+ SET(${prefix}_${option} FALSE)
+ ENDFOREACH()
+
+ SET(current_arg_name DEFAULT_ARGS)
+ SET(current_arg_list)
+ FOREACH(arg ${ARGN})
+ LIST_CONTAINS(is_arg_name ${arg} ${arg_names})
+ IF (is_arg_name)
+ SET(${prefix}_${current_arg_name} ${current_arg_list})
+ SET(current_arg_name ${arg})
+ SET(current_arg_list)
+ ELSE()
+ LIST_CONTAINS(is_option ${arg} ${option_names})
+ IF(is_option)
+ SET(${prefix}_${arg} TRUE)
+ ELSE()
+ SET(current_arg_list ${current_arg_list} ${arg})
+ ENDIF()
+ ENDIF()
+ ENDFOREACH()
+ SET(${prefix}_${current_arg_name} ${current_arg_list})
+ENDMACRO()
+
+MACRO(DFHACK_PLUGIN)
+ PARSE_ARGUMENTS(PLUGIN
+ "LINK_LIBRARIES;DEPENDS"
+ "SOME_OPT"
+ ${ARGN}
+ )
+ CAR(PLUGIN_NAME ${PLUGIN_DEFAULT_ARGS})
+ CDR(PLUGIN_SOURCES ${PLUGIN_DEFAULT_ARGS})
+
+ ADD_LIBRARY(${PLUGIN_NAME} MODULE ${PLUGIN_SOURCES})
+ TARGET_LINK_LIBRARIES(${PLUGIN_NAME} dfhack ${PLUGIN_LINK_LIBRARIES})
+ IF(UNIX)
+ SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES SUFFIX .plug.so PREFIX "")
+ ELSE()
+ SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES SUFFIX .plug.dll)
+ ENDIF()
+ install(TARGETS ${PLUGIN_NAME}
+ LIBRARY DESTINATION ${DFHACK_PLUGIN_DESTINATION}
+ RUNTIME DESTINATION ${DFHACK_PLUGIN_DESTINATION})
+ENDMACRO(DFHACK_PLUGIN) \ No newline at end of file