anope- supernets anope source code & configuration |
git clone git://git.acid.vegas/anope.git |
Log | Files | Refs | Archive | README |
CMakeLists.txt (2942B)
1 # Set version.cpp to use C++ as well as set its compile flags 2 set_source_files_properties(version.cpp PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}") 3 # Generate version-bin executable to modify version.h, setting it's linker flags as well 4 add_executable(version-bin version.cpp) 5 set_target_properties(version-bin PROPERTIES LINKER_LANGUAGE CXX LINK_FLAGS "${LDFLAGS}") 6 get_target_property(version_BINARY version-bin LOCATION) 7 # Modify version.h from the above executable, with dependencies to version.cpp 8 # and all of the source files in the main build 9 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version_build 10 COMMAND ${version_BINARY} ${Anope_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_BINARY_DIR}/build.h 11 DEPENDS version-bin ${SRC_SRCS} 12 ) 13 # Add version-bin to list of files for CPack to ignore 14 get_filename_component(version_BINARY ${version_BINARY} NAME) 15 add_to_cpack_ignored_files("${version_BINARY}$" TRUE) 16 if(NOT WIN32) 17 add_to_cpack_ignored_files("version.h$" TRUE) 18 add_to_cpack_ignored_files("build.h$" TRUE) 19 endif(NOT WIN32) 20 21 set(PCH_SOURCES_GCH "") 22 if(USE_PCH AND CMAKE_COMPILER_IS_GNUCXX) 23 string(REPLACE " " ";" PCH_CXXFLAGS "${CXXFLAGS} ${CMAKE_CXX_FLAGS}") 24 25 file(GLOB PCH_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h") 26 sort_list(PCH_SOURCES) 27 28 foreach(PCH_SOURCE ${PCH_SOURCES}) 29 find_includes(${PCH_SOURCE} INCLUDES) 30 set(INCLUDES_LIST) 31 append_to_list(INCLUDES_LIST ${PCH_SOURCE}) 32 foreach(INCLUDE ${INCLUDES}) 33 # Extract the filename from the #include line 34 extract_include_filename(${INCLUDE} FILENAME QUOTE_TYPE) 35 if(QUOTE_TYPE STREQUAL "quotes") 36 find_in_list(PCH_SOURCES "${FILENAME}" FOUND) 37 if(NOT FOUND EQUAL -1) 38 append_to_list(INCLUDES_LIST ${FILENAME}) 39 endif(NOT FOUND EQUAL -1) 40 endif(QUOTE_TYPE STREQUAL "quotes") 41 endforeach(INCLUDE) 42 43 set(PCH_EXTRAFLAGS "") 44 if(DEBUG_BUILD) 45 set(PCH_EXTRAFLAGS "-g") 46 endif(DEBUG_BUILD) 47 if(PCH_SOURCE STREQUAL "module.h") 48 set(PCH_EXTRAFLAGS ${PCH_EXTRAFLAGS} -fPIC) 49 endif(PCH_SOURCE STREQUAL "module.h") 50 if(GETTEXT_INCLUDE) 51 set(PCH_GETTEXT_INCLUDE "-I${GETTEXT_INCLUDE}") 52 endif(GETTEXT_INCLUDE) 53 54 set(PCH_SOURCES_GCH "${PCH_SOURCES_GCH};${CMAKE_CURRENT_BINARY_DIR}/${PCH_SOURCE}.gch") 55 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PCH_SOURCE}.gch 56 COMMAND ${CMAKE_CXX_COMPILER} ARGS ${PCH_CXXFLAGS} ${PCH_EXTRAFLAGS} 57 ${PCH_GETTEXT_INCLUDE} -I${CMAKE_CURRENT_BINARY_DIR} -I${Anope_SOURCE_DIR}/modules/pseudoclients ${CMAKE_CURRENT_SOURCE_DIR}/${PCH_SOURCE} -o ${CMAKE_CURRENT_BINARY_DIR}/${PCH_SOURCE}.gch 58 DEPENDS ${INCLUDES_LIST} VERBATIM 59 ) 60 endforeach(PCH_SOURCE ${PCH_SOURCES}) 61 endif(USE_PCH AND CMAKE_COMPILER_IS_GNUCXX) 62 63 # Add a custom target to the above file 64 add_custom_target(headers DEPENDS version-bin ${CMAKE_CURRENT_BINARY_DIR}/version_build ${PCH_SOURCES_GCH})