]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - 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
index 386d3600d48561cf803e0ae0e78cc83d0a239b66..b3e59de612471ed1567f9aa3e64ddee5cad873ca 100644 (file)
@@ -2,44 +2,41 @@
 # so copy the file out of extra/\r
 file(COPY "${INSPIRCD_BASE}/src/modules/extra/m_regex_stdlib.cpp" DESTINATION "${INSPIRCD_BASE}/src/modules/")\r
 \r
-file(GLOB INSPIRCD_MODULES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${INSPIRCD_BASE}/src/commands/*.cpp" "${INSPIRCD_BASE}/src/modules/*.cpp")\r
+file(GLOB INSPIRCD_MODULES "${INSPIRCD_BASE}/src/coremods/core_*" "${INSPIRCD_BASE}/src/modules/m_*")\r
 list(SORT INSPIRCD_MODULES)\r
 \r
 add_definitions("-DDLL_BUILD")\r
 \r
 foreach(MODULE_NAME ${INSPIRCD_MODULES})\r
-       string(REGEX REPLACE "^.*[/\\](.*).cpp$" "\\1" BASE_NAME ${MODULE_NAME})\r
+       if(IS_DIRECTORY "${MODULE_NAME}")\r
+               string(REGEX REPLACE "^.*[/\\](.*)$" "\\1" BASE_NAME ${MODULE_NAME})\r
+       else(IS_DIRECTORY "${MODULE_NAME}")\r
+               string(REGEX REPLACE "^.*[/\\](.*).cpp$" "\\1" BASE_NAME ${MODULE_NAME})\r
+       endif(IS_DIRECTORY "${MODULE_NAME}")\r
        set(SO_NAME "${BASE_NAME}.so")\r
-       add_library(${SO_NAME} MODULE ${MODULE_NAME})\r
-       set_target_properties(${SO_NAME} PROPERTIES\r
-               PREFIX ""\r
-               SUFFIX ""\r
-               COMPILE_DEFINITIONS "MODNAME=\"${BASE_NAME}\""\r
-       )\r
 \r
+       if(IS_DIRECTORY "${MODULE_NAME}")\r
+               file(GLOB MODULES_SUBDIR_SRCS "${MODULE_NAME}/*.cpp")\r
+               list(SORT MODULES_SUBDIR_SRCS)\r
+               add_library(${SO_NAME} MODULE ${MODULES_SUBDIR_SRCS})\r
+       else(IS_DIRECTORY "${MODULE_NAME}")\r
+               add_library(${SO_NAME} MODULE ${MODULE_NAME})\r
+       endif(IS_DIRECTORY "${MODULE_NAME}")\r
+\r
+       # Generate the module and set its linker flags, also set it to depend on the main executable to be built beforehand\r
        target_link_libraries(${SO_NAME} inspircd)\r
        add_dependencies(${SO_NAME} inspircd)\r
        if(MSVC)\r
                target_link_libraries(${SO_NAME} win32_memory)\r
                add_dependencies(${SO_NAME} win32_memory)\r
        endif(MSVC)\r
-       install(TARGETS ${SO_NAME} DESTINATION modules)\r
-endforeach(MODULE_NAME ${INSPIRCD_MODULES})\r
 \r
-file(GLOB INSPIRCD_MODULES_SPANNINGTREE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${INSPIRCD_BASE}/src/modules/m_spanningtree/*.cpp")\r
-list(SORT INSPIRCD_MODULES_SPANNINGTREE)\r
-\r
-add_library(m_spanningtree.so MODULE ${INSPIRCD_MODULES_SPANNINGTREE})\r
-set_target_properties(m_spanningtree.so PROPERTIES\r
-       PREFIX ""\r
-       SUFFIX ""\r
-       COMPILE_DEFINITIONS "MODNAME=\"m_spanningtree\""\r
-)\r
+       set_target_properties(${SO_NAME} PROPERTIES\r
+               PREFIX ""\r
+               SUFFIX ""\r
+               COMPILE_DEFINITIONS "MODNAME=\"${BASE_NAME}\""\r
+       )\r
 \r
-target_link_libraries(m_spanningtree.so inspircd)\r
-add_dependencies(m_spanningtree.so inspircd)\r
-if(MSVC)\r
-       target_link_libraries(m_spanningtree.so win32_memory)\r
-       add_dependencies(m_spanningtree.so win32_memory)\r
-endif(MSVC)\r
-install(TARGETS m_spanningtree.so DESTINATION modules)
\ No newline at end of file
+       # Set the module to be installed to the module directory\r
+       install(TARGETS ${SO_NAME} DESTINATION modules)\r
+endforeach(MODULE_NAME ${INSPIRCD_MODULES})\r