]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - win/CMakeLists.txt
Use IsCTCP in blockcolor for ignoring CTCPs.
[user/henk/code/inspircd.git] / win / CMakeLists.txt
index f26b9a6c7cbfd9f90fc8f411a0599e139e2e0fb9..2df48883f63c838277931de4eabcd514a7db1a1f 100644 (file)
@@ -2,25 +2,28 @@ cmake_minimum_required(VERSION 2.8)
 
 project(InspIRCd CXX)
 
-set(CONF_PATH "conf" CACHE PATH "Configuration file path")
-set(MODULE_PATH "modules" CACHE PATH "Module path")
-set(DATA_PATH "data" CACHE PATH "Data path")
-set(LOG_PATH "log" CACHE PATH "Log file path")
+set(CONFIG_DIR "conf" CACHE PATH "Configuration file path")
+set(MODULE_DIR "modules" CACHE PATH "Module path")
+set(DATA_DIR "data" CACHE PATH "Data path")
+set(LOG_DIR "logs" CACHE PATH "Log file path")
 
 set(EXTRA_INCLUDES "" CACHE PATH "Extra include paths")
 set(EXTRA_LIBS "" CACHE PATH "Extra library paths")
 
 set(INSPIRCD_BASE "${CMAKE_CURRENT_SOURCE_DIR}/../")
 
+# Build with multiple processes
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
+
 # Use our own NSIS template
 set(CMAKE_MODULE_PATH "${INSPIRCD_BASE}/win")
 
 # Grab version info from version.sh
 file(STRINGS "${INSPIRCD_BASE}/src/version.sh" VERSIONSH)
-string(REGEX REPLACE ".*InspIRCd-([0-9]*).*" "\\1" MAJOR_VERSION "${VERSIONSH}")
-string(REGEX REPLACE ".*InspIRCd-[0-9]*\\.([0-9]*).*" "\\1" MINOR_VERSION "${VERSIONSH}")
-string(REGEX REPLACE ".*InspIRCd-[0-9]*\\.[0-9]*\\.([0-9]*).*" "\\1" PATCH_VERSION "${VERSIONSH}")
-set(FULL_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}")
+string(REGEX REPLACE ".*InspIRCd-([0-9]*).*" "\\1" VERSION_MAJOR "${VERSIONSH}")
+string(REGEX REPLACE ".*InspIRCd-[0-9]*\\.([0-9]*).*" "\\1" VERSION_MINOR "${VERSIONSH}")
+string(REGEX REPLACE ".*InspIRCd-[0-9]*\\.[0-9]*\\.([0-9]*).*" "\\1" VERSION_PATCH "${VERSIONSH}")
+string(REGEX REPLACE ".*InspIRCd-([^\"]+).*" "\\1" VERSION_FULL "${VERSIONSH}")
 
 if(MSVC)
        # Without /SAFESEH:NO old libraries compiled with VS 2010 or older won't link correctly to VS2012 (eg, extra module libs)
@@ -41,11 +44,17 @@ endif(MSVC)
 file(GLOB INSPIRCD_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
 "${INSPIRCD_BASE}/win/inspircd_win32wrapper.cpp"
 "${INSPIRCD_BASE}/win/win32service.cpp" "${INSPIRCD_BASE}/src/*.cpp"
-"${INSPIRCD_BASE}/src/modes/*.cpp"
 "${INSPIRCD_BASE}/src/socketengines/socketengine_select.cpp"
 "${INSPIRCD_BASE}/src/threadengines/threadengine_win32.cpp")
 list(SORT INSPIRCD_SOURCES)
 
+file(GLOB INSPIRCD_VENDORS "${INSPIRCD_BASE}/vendor/**")
+foreach(INSPIRCD_VENDOR ${INSPIRCD_VENDORS})
+       if(IS_DIRECTORY ${INSPIRCD_VENDOR})
+               include_directories(${INSPIRCD_VENDOR})
+       endif()
+endforeach()
+
 include_directories("${INSPIRCD_BASE}/win" "${INSPIRCD_BASE}/include")
 
 include_directories(${EXTRA_INCLUDES})
@@ -56,8 +65,7 @@ if(MSVC)
 endif(MSVC)
 
 configure_file("${INSPIRCD_BASE}/win/inspircd.rc.cmake" "${INSPIRCD_BASE}/win/inspircd.rc")
-configure_file("${INSPIRCD_BASE}/win/inspircd_version.h.cmake" "${INSPIRCD_BASE}/win/inspircd_version.h")
-configure_file("${INSPIRCD_BASE}/win/inspircd_config.h.cmake" "${INSPIRCD_BASE}/win/inspircd_config.h")
+configure_file("${INSPIRCD_BASE}/make/template/config.h" "${INSPIRCD_BASE}/include/config.h")
 
 add_executable(inspircd ${INSPIRCD_SOURCES} "${INSPIRCD_BASE}/win/inspircd.rc")
 target_link_libraries(inspircd win32_memory)
@@ -74,22 +82,27 @@ install(FILES ${EXTRA_DLLS} DESTINATION .)
 file(GLOB_RECURSE EXAMPLE_CONFIGS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${INSPIRCD_BASE}/docs/conf/*.example")
 install(FILES ${EXAMPLE_CONFIGS} DESTINATION conf)
 
+# Install nationalchars files
+file(GLOB_RECURSE EXAMPLE_LOCALES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${INSPIRCD_BASE}/locales/*")
+install(FILES ${EXAMPLE_LOCALES} DESTINATION locales)
+
 # Create an empty data and logs directory and install them
-file(MAKE_DIRECTORY data)
-install(DIRECTORY "data" DESTINATION .)
-file(MAKE_DIRECTORY logs)
-install(DIRECTORY "logs" DESTINATION .)
+file(MAKE_DIRECTORY ${DATA_DIR})
+install(DIRECTORY ${DATA_DIR} DESTINATION .)
+file(MAKE_DIRECTORY ${LOG_DIR})
+install(DIRECTORY ${LOG_DIR} DESTINATION .)
 
 if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
+       set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION ".") # place runtime libraries next to InspIRCd binary
        include(InstallRequiredSystemLibraries)
 
        set(CPACK_PACKAGE_NAME "InspIRCd IRC Daemon")
        set(CPACK_PACKAGE_VENDOR "InspIRCd Development Team")
-       set(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION})
-       set(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION})
-       set(CPACK_PACKAGE_VERSION_PATCH ${PATCH_VERSION})
-       set(CPACK_PACKAGE_FILE_NAME "InspIRCd-${FULL_VERSION}")
-       set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/../docs/COPYING")
+       set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
+       set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
+       set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
+       set(CPACK_PACKAGE_FILE_NAME "InspIRCd-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
+       set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/../docs/LICENSE.txt")
 
        set(CPACK_GENERATOR "NSIS")
        set(CPACK_PACKAGE_INSTALL_DIRECTORY "InspIRCd")
@@ -98,8 +111,8 @@ if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
        set(CPACK_NSIS_MUI_ICON "${INSPIRCD_BASE}/win\\\\inspircd.ico")
        set(CPACK_NSIS_MUI_UNIICON "${INSPIRCD_BASE}/win\\\\inspircd.ico")
        set(CPACK_NSIS_INSTALLED_ICON_NAME "inspircd.exe")
-       set(CPACK_NSIS_URL_INFO_ABOUT "http://www.inspircd.org/")
-       set(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
+       set(CPACK_NSIS_URL_INFO_ABOUT "https://www.inspircd.org")
+       set(CPACK_NSIS_COMPRESSOR "/SOLID zlib")
 
        include(CPack)
 endif(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")