From 5b1c6e3a56905431da62ddd0e26b3bf5170a207e Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 12 Sep 2017 18:34:46 +0200 Subject: [PATCH] Greatly simplified cmakelists --- CMakeLists.txt | 16 ++++++++---- FindMySQLConnectorCPP.cmake | 11 ++++++++ compiler.cmake | 2 ++ src/servers/CMakeLists.txt | 1 - src/servers/Server_Common/CMakeLists.txt | 3 --- src/servers/Server_Lobby/CMakeLists.txt | 9 ------- src/servers/Server_REST/CMakeLists.txt | 5 ---- src/servers/Server_Zone/CMakeLists.txt | 33 +++++++++--------------- 8 files changed, 36 insertions(+), 44 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 348aff6a..04a73b62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,7 @@ project (Sapphire) set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin) + set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}) set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}) @@ -16,22 +17,27 @@ if(NOT SAPPHIRE_BOOST_VER) set(SAPPHIRE_BOOST_VER 1.60.0) endif() set(SAPPHIRE_BOOST_FOLDER_NAME boost_1_60_0) +set(SERVER_COMMON_DIR ${CMAKE_SOURCE_DIR}/src/servers/Server_Common) + include( "boost.cmake" ) include( "compiler.cmake" ) +set( MYSQLCONNECTORCPP_ROOT_DIR "G:\\programming\\libs\\MySQL1.1.9" ) FIND_PACKAGE(MySQLConnectorCPP) -message(${MYSQLCONNECTORCPP_INCLUDE_DIR}) -message(${MYSQLCONNECTORCPP_LIBRARIES}) - include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/libraries/external/ChaiScript-6.0.0/include/") include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/libraries/sapphire/datReader/") -include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/libraries/external/MySQLpp/include/") -include_directories("src") +include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src") +include_directories("${MYSQLCONNECTORCPP_INCLUDE_DIR}") include_directories("${PROJECT_INCLUDE_DIR}") include_directories("${PROJECT_SOURCE_DIR}") +link_directories(${MYSQLCONNECTORCPP_LIBRARIES}) +link_directories(${SERVER_COMMON_DIR}) +link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/sapphire/datReader) + + add_subdirectory("src/servers") add_subdirectory("src/libraries/sapphire/datReader") diff --git a/FindMySQLConnectorCPP.cmake b/FindMySQLConnectorCPP.cmake index d1a54329..5dfa4aa9 100644 --- a/FindMySQLConnectorCPP.cmake +++ b/FindMySQLConnectorCPP.cmake @@ -34,6 +34,17 @@ if(WIN32) PATH_SUFFIXES lib) + if( NOT $MYSQLCONNECTORCPP_LIBRARY ) + find_library(MYSQLCONNECTORCPP_LIBRARY + NAMES + mysqlcppconn + mysqlcppconn-static + HINTS + ${MYSQLCONNECTORCPP_ROOT_DIR} + PATH_SUFFIXES + lib/opt) + endif() + else() find_path(MYSQLCONNECTORCPP_INCLUDE_DIR mysql_connection.h diff --git a/compiler.cmake b/compiler.cmake index fdbff8eb..fb93b77c 100644 --- a/compiler.cmake +++ b/compiler.cmake @@ -1,8 +1,10 @@ if(UNIX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") else() add_definitions(-D_WIN32_WINNT=0x601) + add_definitions(-D_CRT_SECURE_NO_WARNINGS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") diff --git a/src/servers/CMakeLists.txt b/src/servers/CMakeLists.txt index 80fd3109..6387b188 100644 --- a/src/servers/CMakeLists.txt +++ b/src/servers/CMakeLists.txt @@ -9,7 +9,6 @@ set(PROJECT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include) include_directories("${PROJECT_INCLUDE_DIR}") include_directories("${PROJECT_SOURCE_DIR}") - add_subdirectory(${PROJECT_SOURCE_DIR}/Server_Common) add_subdirectory(${PROJECT_SOURCE_DIR}/Server_Lobby) add_subdirectory(${PROJECT_SOURCE_DIR}/Server_REST) diff --git a/src/servers/Server_Common/CMakeLists.txt b/src/servers/Server_Common/CMakeLists.txt index 338f1d45..4f213405 100644 --- a/src/servers/Server_Common/CMakeLists.txt +++ b/src/servers/Server_Common/CMakeLists.txt @@ -22,9 +22,6 @@ file(GLOB UTILS_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/Script/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/Util/*.cpp") - -link_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/sapphire/datReader/") - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) add_library(Common ${UTILS_PUBLIC_INCLUDE_FILES} ${UTILS_SOURCE_FILES}) diff --git a/src/servers/Server_Lobby/CMakeLists.txt b/src/servers/Server_Lobby/CMakeLists.txt index 26bcafcc..6e0f8f17 100644 --- a/src/servers/Server_Lobby/CMakeLists.txt +++ b/src/servers/Server_Lobby/CMakeLists.txt @@ -5,21 +5,12 @@ project(Sapphire) file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*") file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") -set(SERVER_COMMON_DIR ../Server_Common) -set(Boost_USE_STATIC_LIBS ON) - if(UNIX) include_directories("/usr/include/mysql/") else() - add_definitions(-D_WIN32_WINNT=0x601) - add_definitions(-D_CRT_SECURE_NO_WARNINGS) include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/") endif() - -link_directories(${SERVER_COMMON_DIR}) -link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/sapphire/datReader) - if(CMAKE_SIZEOF_VOID_P EQUAL 4) # 32 bit link link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/x86) diff --git a/src/servers/Server_REST/CMakeLists.txt b/src/servers/Server_REST/CMakeLists.txt index 6bd2fda0..5fc2bb22 100644 --- a/src/servers/Server_REST/CMakeLists.txt +++ b/src/servers/Server_REST/CMakeLists.txt @@ -5,8 +5,6 @@ project(Sapphire) file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*") file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") -set(SERVER_COMMON_DIR ../Server_Common) -set(Boost_USE_STATIC_LIBS ON) if(UNIX) include_directories("/usr/include/mysql/") @@ -14,9 +12,6 @@ else() include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/") endif() -link_directories(${SERVER_COMMON_DIR}) -link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/sapphire/datReader) - if(CMAKE_SIZEOF_VOID_P EQUAL 4) # 32 bit link link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/x86) diff --git a/src/servers/Server_Zone/CMakeLists.txt b/src/servers/Server_Zone/CMakeLists.txt index 7bc4a8e1..0c02a533 100644 --- a/src/servers/Server_Zone/CMakeLists.txt +++ b/src/servers/Server_Zone/CMakeLists.txt @@ -20,28 +20,19 @@ file(GLOB SERVER_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} StatusEffect/*.c* Zone/*.c*) -set(SERVER_COMMON_DIR ../Server_Common) - if(UNIX) include_directories("/usr/include/mysql/") else() include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/") -endif() - -add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Script) - -link_directories(${SERVER_COMMON_DIR}) -link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/sapphire/datReader) -link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQLpp/lib/opt) - -if(CMAKE_SIZEOF_VOID_P EQUAL 4) - # 32 bit link - link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/x86) - link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/zlib/x86) -else() - # 64 bit link - link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/x64) - link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/zlib/x64) + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + # 32 bit link + link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/x86) + link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/zlib/x86) + else() + # 64 bit link + link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/MySQL/x64) + link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/zlib/x64) + endif() endif() set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/") @@ -60,9 +51,9 @@ set_target_properties(server_zone PROPERTIES ) if (UNIX) - target_link_libraries ( server_zone Common xivdat pthread mysqlclient mysqlcppconn dl z ) + target_link_libraries ( server_zone Common xivdat pthread mysqlclient dl z ) else() - target_link_libraries ( server_zone Common xivdat libmysql zlib1 mysqlcppconn ) + target_link_libraries ( server_zone Common xivdat libmysql zlib1 ) endif() -target_link_libraries(server_zone ${Boost_LIBRARIES} ${Boost_LIBRARIES}) +target_link_libraries(server_zone ${Boost_LIBRARIES} ${Boost_LIBRARIES} ${MYSQLCONNECTORCPP_LIBRARY} )