X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=win%2FCMakeLists.txt;h=7be08a3fcd43f2c18d4dea2f508347af1dd863ef;hb=f24239657e749d7d03f9dbafa4128c5720910153;hp=288aa2d7b0f360a2060398c769f98de0c0a25589;hpb=b17ba83e9c5da3620277ff317b5f82dc397813d7;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/win/CMakeLists.txt b/win/CMakeLists.txt index 288aa2d7b..7be08a3fc 100644 --- a/win/CMakeLists.txt +++ b/win/CMakeLists.txt @@ -2,6 +2,14 @@ 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 "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}/../") # Use our own NSIS template @@ -14,12 +22,6 @@ string(REGEX REPLACE ".*InspIRCd-[0-9]*\\.([0-9]*).*" "\\1" MINOR_VERSION "${VER string(REGEX REPLACE ".*InspIRCd-[0-9]*\\.[0-9]*\\.([0-9]*).*" "\\1" PATCH_VERSION "${VERSIONSH}") set(FULL_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}") -# Write out inspircd_version.h -file(WRITE "${INSPIRCD_BASE}/win/inspircd_version.h" "#define BRANCH \"${MAJOR_VERSION}.${MINOR_VERSION}\"\n") -file(APPEND "${INSPIRCD_BASE}/win/inspircd_version.h" "#define VERSION \"${FULL_VERSION}\"\n") -file(APPEND "${INSPIRCD_BASE}/win/inspircd_version.h" "#define REVISION \"0\"\n") -file(APPEND "${INSPIRCD_BASE}/win/inspircd_version.h" "#define SYSTEM \"${CMAKE_SYSTEM}\"\n") - if(MSVC) # Without /SAFESEH:NO old libraries compiled with VS 2010 or older won't link correctly to VS2012 (eg, extra module libs) set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /SAFESEH:NO") @@ -36,8 +38,12 @@ if(MSVC) set(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} /SAFESEH:NO") 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") -list(APPEND INSPIRCD_SOURCES "${INSPIRCD_BASE}/src/threadengines/threadengine_win32.cpp") +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) include_directories("${INSPIRCD_BASE}/win" "${INSPIRCD_BASE}/include") @@ -45,14 +51,19 @@ include_directories("${INSPIRCD_BASE}/win" "${INSPIRCD_BASE}/include") include_directories(${EXTRA_INCLUDES}) link_directories(${EXTRA_LIBS}) +if(MSVC) + add_library(win32_memory STATIC "${INSPIRCD_BASE}/win/inspircd_memory_functions.cpp") +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") + add_executable(inspircd ${INSPIRCD_SOURCES} "${INSPIRCD_BASE}/win/inspircd.rc") +target_link_libraries(inspircd win32_memory) set_target_properties(inspircd PROPERTIES ENABLE_EXPORTS ON) install(TARGETS inspircd DESTINATION .) -if(MSVC) - add_library(win32_memory STATIC "${INSPIRCD_BASE}/win/inspircd_memory_functions.cpp") -endif(MSVC) add_subdirectory(modules) # Package any DLLs in win/ @@ -63,13 +74,18 @@ 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_PATH}) +install(DIRECTORY ${DATA_PATH} DESTINATION .) +file(MAKE_DIRECTORY ${LOG_PATH}) +install(DIRECTORY ${LOG_PATH} 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") @@ -88,7 +104,7 @@ if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") 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_COMPRESSOR "/SOLID zlib") include(CPack) endif(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")