diff options
| author | cyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-12-17 20:16:25 +0000 |
|---|---|---|
| committer | cyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-12-17 20:16:25 +0000 |
| commit | 1cd73b4dadb8e618a0ec56289408922be42aac8a (patch) | |
| tree | b437cb421d0ed2da6eca57ec4925a8b740aa00d1 /src/modules/CMakeLists.txt | |
| parent | 1fca479d8eb793bf6473226ff248cfe7b814a3e8 (diff) | |
Implemented CMake build system to replace the old autoconf-based build system.
(Note: Although each Makefile was changed, they will be removed later as CMake reconstructs them.)
Also fixed generation of language files and version.h to not rely on the current directory they are in.
Edited Config to send parameters to cmake, but it is no longer a requirement.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1835 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/modules/CMakeLists.txt')
| -rw-r--r-- | src/modules/CMakeLists.txt | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt new file mode 100644 index 000000000..1e153a933 --- /dev/null +++ b/src/modules/CMakeLists.txt @@ -0,0 +1,59 @@ +#if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) +# set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}) +#else(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) +# file(RELATIVE_PATH DIR ${Anope_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +# set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/${DIR}) +#endif(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) + +file(GLOB MODULES_SRCS_C RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.c") +file(GLOB MODULES_SRCS_CPP RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cpp") +set(MODULES_SRCS ${MODULES_SRCS_C} ${MODULES_SRCS_CPP}) +list(SORT MODULES_SRCS) + +#add_custom_target(modules ALL) +#add_custom_target(modules) +#add_dependencies(modules build) + +set_source_files_properties(${MODULES_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}") + +foreach(SRC ${MODULES_SRCS}) + string(REGEX REPLACE "\\.cpp$" ".x" SRC_X ${SRC}) + string(REGEX REPLACE "\\.c$" ".o" SRC_O ${SRC_X}) + string(REGEX REPLACE "\\.x$" ".o" OBJ ${SRC_O}) + #string(REGEX REPLACE "\\." "_" OBJ_TARGET ${OBJ}) + string(REGEX REPLACE "\\.o" ".so" SO ${OBJ}) + #string(REGEX REPLACE "\\.o" "" SO ${OBJ}) + #string(REGEX REPLACE "\\." "_" SO_TARGET ${SO}) + #add_custom_command(OUTPUT ${BUILD_DIR}/${OBJ} + # COMMAND ${MY_COMPILER} ${MY_COMP_ARG} ${CMAKE_CXX_CFLAGS} -I${Anope_SOURCE_DIR}/include -c ${SRC} -o ${BUILD_DIR}/${OBJ} + # MAIN_DEPENDENCY ${SRC} + #) + #add_custom_target(modules_${OBJ_TARGET} DEPENDS ${BUILD_DIR}/${OBJ}) + #add_custom_command(OUTPUT ${BUILD_DIR}/${SO} + # COMMAND ${MY_COMPILER} ${MY_COMP_ARG} ${CMAKE_CXX_CFLAGS} ${CMAKE_SHARED_LIBRARY_CXX_FLAGS} ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} ${BUILD_DIR}/${OBJ} -o ${BUILD_DIR}/${SO} + # MAIN_DEPENDENCY ${BUILD_DIR}/${OBJ} + #) + #add_custom_target(modules_${SO_TARGET} DEPENDS ${BUILD_DIR}/${SO}) + #add_dependencies(modules modules_${SO_TARGET}) + set(HEADERS ${Anope_SOURCE_DIR}/include/module.h) + if(${SRC}_HEADERS) + foreach(HEADER ${${SRC}_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) + endif(${SRC}_HEADERS) + if(HEADERS) + set_source_files_properties(${SRC} PROPERTIES OBJECT_DEPENDS "${HEADERS}") + endif(HEADERS) + add_library(${SO} MODULE ${SRC}) + add_dependencies(${SO} services) + #set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "" COMPILE_FLAGS ${CXXFLAGS}) + set_target_properties(${SO} PROPERTIES PREFIX "" SUFFIX "") + install(TARGETS ${SO} + DESTINATION "${DATADIR}/modules" + ) +endforeach(SRC) |
