# 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