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/protocol/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/protocol/CMakeLists.txt')
| -rw-r--r-- | src/protocol/CMakeLists.txt | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/protocol/CMakeLists.txt b/src/protocol/CMakeLists.txt new file mode 100644 index 000000000..403348704 --- /dev/null +++ b/src/protocol/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 PROTOCOL_SRCS_C RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.c") +file(GLOB PROTOCOL_SRCS_CPP RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cpp") +set(PROTOCOL_SRCS ${PROTOCOL_SRCS_C} ${PROTOCOL_SRCS_CPP}) +list(SORT PROTOCOL_SRCS) + +#add_custom_target(protocol ALL) +#add_custom_target(modules) +#add_dependencies(protocol build) + +set_source_files_properties(${PROTOCOL_SRCS} PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}") + +foreach(SRC ${PROTOCOL_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(protocol_${SO_TARGET} DEPENDS ${BUILD_DIR}/${SO}) + #add_dependencies(protocol protocol_${SO_TARGET}) + set(HEADERS ${Anope_SOURCE_DIR}/include/services.h ${Anope_SOURCE_DIR}/include/pseudo.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) |
