summaryrefslogtreecommitdiff
path: root/include/CMakeLists.txt
diff options
context:
space:
mode:
authorcyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2008-12-17 20:16:55 +0000
committercyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2008-12-17 20:16:55 +0000
commit2d72446860abac08dc4f36b10fde7536f7897956 (patch)
tree25dc114bb696bc8752d68e6e050da8d3dda5f282 /include/CMakeLists.txt
parent1cd73b4dadb8e618a0ec56289408922be42aac8a (diff)
More CMake work, mostly to handle both *nix and Windows builds.
Also some tweaks to generation files (like version.sh) to take both input and output files as arguments, to handle CMake when it's used for an out-of-source build. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1836 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'include/CMakeLists.txt')
-rw-r--r--include/CMakeLists.txt56
1 files changed, 35 insertions, 21 deletions
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index 8deeef120..bfdbadee6 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -8,32 +8,45 @@ set(messages.h_HEADERS modules.h)
set(module.h_HEADERS services.h commands.h ${Anope_BINARY_DIR}/lang/language.h modules.h ${CMAKE_CURRENT_BINARY_DIR}/version.h)
set(modules.h_HEADERS services.h)
set(pseudo.h_HEADERS commands.h ${Anope_BINARY_DIR}/lang/language.h timeout.h encrypt.h datafiles.h slist.h)
-set(services.h_HEADERS sysconf.h config.h sockets.h defs.h slist.h events.h bots.h account.h regchannel.h users.h extern.h configreader.h)
+set(services.h_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/sysconf.h config.h sockets.h defs.h slist.h events.h bots.h account.h regchannel.h users.h extern.h configreader.h)
-add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.h
- #COMMAND ${CMAKE_COMMAND} -E copy ${Anope_SOURCE_DIR}/version.log ../
- COMMAND ${SH} ${CMAKE_CURRENT_SOURCE_DIR}/version.sh ${Anope_SOURCE_DIR}/version.log
- #COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_SOURCE_DIR}/
- #COMMAND ${CMAKE_COMMAND} -E remove ../version.log
- MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/version.sh DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services.h ${CMAKE_CURRENT_SOURCE_DIR}/pseudo.h ${CMAKE_CURRENT_SOURCE_DIR}/messages.h ${SRC_SRCS}
-# MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/version.sh DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services.h ${CMAKE_CURRENT_SOURCE_DIR}/pseudo.h ${CMAKE_CURRENT_SOURCE_DIR}/messages.h
-)
+if(WIN32)
+ set_source_files_properties(version.sh.c PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}")
+ add_executable(version.sh version.sh.c)
+ set_target_properties(version.sh PROPERTIES LINK_FLAGS "${LDFLAGS}")
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.h
+ COMMAND version.sh ${Anope_SOURCE_DIR}/version.log ${CMAKE_CURRENT_SOURCE_DIR}/version.sh ${CMAKE_CURRENT_BINARY_DIR}/version.h
+ MAIN_DEPENDENCY version.sh DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services.h ${CMAKE_CURRENT_SOURCE_DIR}/pseudo.h ${CMAKE_CURRENT_SOURCE_DIR}/messages.h ${SRC_SRCS}
+ )
+else(WIN32)
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.h
+ #COMMAND ${CMAKE_COMMAND} -E copy ${Anope_SOURCE_DIR}/version.log ../
+ COMMAND ${SH} ${CMAKE_CURRENT_SOURCE_DIR}/version.sh ${Anope_SOURCE_DIR}/version.log ${CMAKE_CURRENT_BINARY_DIR}/version.h
+ #COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_SOURCE_DIR}/
+ #COMMAND ${CMAKE_COMMAND} -E remove ../version.log
+ MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/version.sh DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services.h ${CMAKE_CURRENT_SOURCE_DIR}/pseudo.h ${CMAKE_CURRENT_SOURCE_DIR}/messages.h ${SRC_SRCS}
+ # MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/version.sh DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services.h ${CMAKE_CURRENT_SOURCE_DIR}/pseudo.h ${CMAKE_CURRENT_SOURCE_DIR}/messages.h
+ )
+endif(WIN32)
foreach(HEADER ${HEADERS_REL})
- add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER}
- COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER}
- )
+ if(NOT WIN32)
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER}
+ COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER}
+ )
+ endif(NOT WIN32)
set(HEADERS_FULL ${HEADERS_FULL} ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER})
set(HEADERS)
if(${HEADER}_HEADERS)
- foreach(HEADER ${${HEADER}_HEADERS})
- string(SUBSTRING ${HEADER} 0 1 FIRST_CHAR)
- if(FIRST_CHAR STREQUAL "/")
- set(HEADERS ${HEADERS} ${HEADER})
- else(FIRST_CHAR STREQUAL "/")
- set(HEADERS ${HEADERS} ${Anope_SOURCE_DIR}/include/${HEADER})
- endif(FIRST_CHAR STREQUAL "/")
- endforeach(HEADER)
+ foreach(HEADER_REL ${${HEADER}_HEADERS})
+ string(SUBSTRING ${HEADER_REL} 0 1 FIRST_CHAR)
+ string(SUBSTRING ${HEADER_REL} 1 1 SECOND_CHAR)
+ if(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":")
+ set(HEADERS ${HEADERS} ${HEADER_REL})
+ else(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":")
+ set(HEADERS ${HEADERS} ${Anope_SOURCE_DIR}/include/${HEADER_REL})
+ endif(FIRST_CHAR STREQUAL "/" OR SECOND_CHAR STREQUAL ":")
+ endforeach(HEADER_REL)
endif(${HEADER}_HEADERS)
if(HEADERS)
set_source_files_properties(${HEADER} PROPERTIES OBJECT_DEPENDS "${HEADERS}")
@@ -66,4 +79,5 @@ message(STATUS "HEADERS_FULL: ${HEADERS_FULL}")
add_custom_target(headers DEPENDS ${HEADERS_FULL})
#add_dependencies(include include_version_h)
-set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM yes ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_BINARY_DIR}/language.h")
+set(HEADERS_CLEAN ${CMAKE_CURRENT_BINARY_DIR}/version.h)
+set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM yes ADDITIONAL_MAKE_CLEAN_FILES "${HEADERS_CLEAN}")