]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - win/modules/CMakeLists.txt
Build coremods on Windows, add general support to the cmake script for building modul...
[user/henk/code/inspircd.git] / win / modules / CMakeLists.txt
1 # m_regex_stdlib is supported by every version of Visual Studio we support,\r
2 # so copy the file out of extra/\r
3 file(COPY "${INSPIRCD_BASE}/src/modules/extra/m_regex_stdlib.cpp" DESTINATION "${INSPIRCD_BASE}/src/modules/")\r
4 \r
5 file(GLOB INSPIRCD_MODULES "${INSPIRCD_BASE}/src/coremods/core_*" "${INSPIRCD_BASE}/src/modules/m_*")\r
6 list(SORT INSPIRCD_MODULES)\r
7 \r
8 add_definitions("-DDLL_BUILD")\r
9 \r
10 foreach(MODULE_NAME ${INSPIRCD_MODULES})\r
11         if(IS_DIRECTORY "${MODULE_NAME}")\r
12                 string(REGEX REPLACE "^.*[/\\](.*)$" "\\1" BASE_NAME ${MODULE_NAME})\r
13         else(IS_DIRECTORY "${MODULE_NAME}")\r
14                 string(REGEX REPLACE "^.*[/\\](.*).cpp$" "\\1" BASE_NAME ${MODULE_NAME})\r
15         endif(IS_DIRECTORY "${MODULE_NAME}")\r
16         set(SO_NAME "${BASE_NAME}.so")\r
17 \r
18         if(IS_DIRECTORY "${MODULE_NAME}")\r
19                 file(GLOB MODULES_SUBDIR_SRCS "${MODULE_NAME}/*.cpp")\r
20                 list(SORT MODULES_SUBDIR_SRCS)\r
21                 add_library(${SO_NAME} MODULE ${MODULES_SUBDIR_SRCS})\r
22         else(IS_DIRECTORY "${MODULE_NAME}")\r
23                 add_library(${SO_NAME} MODULE ${MODULE_NAME})\r
24         endif(IS_DIRECTORY "${MODULE_NAME}")\r
25 \r
26         # Generate the module and set its linker flags, also set it to depend on the main executable to be built beforehand\r
27         target_link_libraries(${SO_NAME} inspircd)\r
28         add_dependencies(${SO_NAME} inspircd)\r
29         if(MSVC)\r
30                 target_link_libraries(${SO_NAME} win32_memory)\r
31                 add_dependencies(${SO_NAME} win32_memory)\r
32         endif(MSVC)\r
33 \r
34         set_target_properties(${SO_NAME} PROPERTIES\r
35                 PREFIX ""\r
36                 SUFFIX ""\r
37                 COMPILE_DEFINITIONS "MODNAME=\"${BASE_NAME}\""\r
38         )\r
39 \r
40         # Set the module to be installed to the module directory\r
41         install(TARGETS ${SO_NAME} DESTINATION modules)\r
42 endforeach(MODULE_NAME ${INSPIRCD_MODULES})\r