diff options
| author | Petr Mrázek | 2011-09-02 01:25:01 +0200 |
|---|---|---|
| committer | Petr Mrázek | 2011-09-02 01:25:01 +0200 |
| commit | 8cdeb0b59cb9ee52ab81a46d8d6f95e0f846fe01 (patch) | |
| tree | e59028ea78e05f167b97476b231198359c55c0b9 /plugins/Plugins.cmake | |
| parent | e48f8af9a889ebe96ed7eab0b79865b6b0e40cc1 (diff) | |
| download | dfhack-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.cmake | 77 |
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 |
