X-Git-Url: https://git.pterodactylus.net/?p=fms.git;a=blobdiff_plain;f=CMakeLists.txt;h=6412e14c0b325f0cfa50735b0e3107a6f3f32200;hp=3c9997eab5c06cf6d8733ad794ac03ae1863bc68;hb=4e96d123460d6363cf7274e36bd9357768eb86ad;hpb=e662ea47fba8715474851ceebacba400984ee433 diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c9997e..6412e14 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ ENDIF(COMMAND CMAKE_POLICY) PROJECT(fms) -OPTION(USE_BUNDLED_SQLITE "Use the bundled SQLite3 library." OFF) +OPTION(USE_BUNDLED_SQLITE "Use the bundled SQLite3 library." ON) IF(APPLE) SET(USE_BUNDLED_SQLITE ON) ENDIF(APPLE) @@ -131,11 +131,27 @@ ELSE(ALTERNATE_CAPTCHA) MESSAGE(STATUS "You are using the old captcha generator. Add a -D ALTERNATE_CAPTCHA=ON to the command line to use the alternate captcha generator.") ENDIF(ALTERNATE_CAPTCHA) +# Get a relative list of include files. +FILE(GLOB_RECURSE FMS_INC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} include/*.h) + +# Create source groups for all sources and includes, in their original directory structure. +FOREACH(SRC ${FMS_SRC} ${FMS_INC}) + STRING(REGEX REPLACE ${CMAKE_CURRENT_SOURCE_DIR} "Files" REL_DIR "${SRC}") + STRING(REGEX REPLACE "[\\\\/][^\\\\/]*$" "" REL_DIR "${REL_DIR}") + STRING(REGEX REPLACE "^[\\\\/]" "" REL_DIR "${REL_DIR}") + IF(REL_DIR) + STRING(REPLACE "/" "\\" REL_DIR "${REL_DIR}") + SOURCE_GROUP(${REL_DIR} FILES ${SRC}) + ELSE(REL_DIR) + SOURCE_GROUP(Files FILES ${SRC}) + ENDIF(REL_DIR) +ENDFOREACH(SRC) + IF(NOT I_HAVE_READ_THE_README) MESSAGE(FATAL_ERROR "You must fully read the readme.txt before continuing.") ENDIF(NOT I_HAVE_READ_THE_README) -ADD_EXECUTABLE(fms ${FMS_SRC} ${FMS_PLATFORM_SRC}) +ADD_EXECUTABLE(fms ${FMS_SRC} ${FMS_PLATFORM_SRC} ${FMS_INC}) # link dl - For SQLite3 and shttpd - not for FreeBSD IF(CMAKE_COMPILER_IS_GNUCC) @@ -181,23 +197,32 @@ IF(ALTERNATE_CAPTCHA) ENDIF(ALTERNATE_CAPTCHA) IF(POCO_FOUNDATION_LIBRARY) - TARGET_LINK_LIBRARIES(fms ${POCO_FOUNDATION_LIBRARY}) + # We don't need to explicitly link under MSVC, POCO uses #pragmas to specify linked libraries. + IF(NOT MSVC) + TARGET_LINK_LIBRARIES(fms ${POCO_FOUNDATION_LIBRARY}) + ENDIF(NOT MSVC) ADD_DEFINITIONS(-DPOCO_HAVE_IPv6) IF(WIN32) ADD_DEFINITIONS(-DPOCO_STATIC) ENDIF(WIN32) IF(POCO_UTIL_LIBRARY) - TARGET_LINK_LIBRARIES(fms ${POCO_UTIL_LIBRARY}) + IF(NOT MSVC) + TARGET_LINK_LIBRARIES(fms ${POCO_UTIL_LIBRARY}) + ENDIF(NOT MSVC) ELSE(POCO_UTIL_LIBRARY) MESSAGE(FATAL_ERROR "Could not find system Poco Util library. You must set the location manually.") ENDIF(POCO_UTIL_LIBRARY) IF(POCO_NET_LIBRARY) - TARGET_LINK_LIBRARIES(fms ${POCO_NET_LIBRARY}) + IF(NOT MSVC) + TARGET_LINK_LIBRARIES(fms ${POCO_NET_LIBRARY}) + ENDIF(NOT MSVC) ELSE(POCO_NET_LIBRARY) MESSAGE(FATAL_ERROR "Could not find system Poco Net library. You must set the location manually.") ENDIF(POCO_NET_LIBRARY) IF(POCO_XML_LIBRARY) - TARGET_LINK_LIBRARIES(fms ${POCO_XML_LIBRARY}) + IF(NOT MSVC) + TARGET_LINK_LIBRARIES(fms ${POCO_XML_LIBRARY}) + ENDIF(NOT MSVC) ELSE(POCO_XML_LIBRARY) MESSAGE(FATAL_ERROR "Could not find system Poco XML library. You must set the location manually.") ENDIF(POCO_XML_LIBRARY)