]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - win/CMakeLists.txt
Filter out newlines from error messages on Windows
[user/henk/code/inspircd.git] / win / CMakeLists.txt
index 288aa2d7b0f360a2060398c769f98de0c0a25589..e6a854d998539cbbb98cd42e0857429e269c1eb7 100644 (file)
@@ -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/
@@ -64,10 +75,10 @@ file(GLOB_RECURSE EXAMPLE_CONFIGS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${INSPIR
 install(FILES ${EXAMPLE_CONFIGS} DESTINATION conf)
 
 # 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")
        include(InstallRequiredSystemLibraries)