From 6cfbb86255b330a463e334c5801482eab899f9dc Mon Sep 17 00:00:00 2001 From: Olion Date: Sat, 6 Jun 2015 20:12:56 +0300 Subject: [PATCH 1/4] [Build]Few improvements for Win32 --- CMakeLists.txt | 1 + cmake/FindGit.cmake | 6 ++++++ cmake/FindMySQL.cmake | 14 +++++++++++--- src/mangosd/CMakeLists.txt | 7 ++----- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ea92d995..7984b441 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,7 @@ cmake_minimum_required(VERSION 2.8) if(POLICY CMP0043) cmake_policy(SET CMP0043 OLD) endif() +cmake_policy(SET CMP0005 OLD) set(CMAKE_SKIP_BUILD_RPATH FALSE) set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) diff --git a/cmake/FindGit.cmake b/cmake/FindGit.cmake index 2d821428..f5e728c0 100644 --- a/cmake/FindGit.cmake +++ b/cmake/FindGit.cmake @@ -35,6 +35,12 @@ endif() find_program(GIT_EXECUTABLE NAMES ${git_names} + PATHS + "$ENV{ProgramFiles}/Git/bin" + "$ENV{ProgramFiles(x86)}/Git/bin" + "$ENV{PATH}" + "/usr/bin" + "/usr/local/bin" DOC "git command line client" ) mark_as_advanced(GIT_EXECUTABLE) diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index 7cf87606..313ee7f5 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -117,9 +117,9 @@ if( UNIX ) endif( UNIX ) if( WIN32 ) - find_library( MYSQL_LIBRARY + find_path( MYSQL_LIBRARY_PATH NAMES - libmysql + libmysql.lib PATHS ${MYSQL_ADD_LIBRARIES_PATH} "C:/Program Files/MySQL/MySQL Server 5.6/lib" @@ -161,8 +161,15 @@ if( WIN32 ) "$ENV{SystemDrive}/MySQL/*/lib/opt" "c:/msys/local/include" "$ENV{MYSQL_ROOT}/lib" + DOC "Specify the path to the mysql library (.lib) here." +) +find_library( MYSQL_LIBRARY + NAMES + libmysql + PATHS + "${MYSQL_LIBRARY_PATH}" DOC "Specify the location of the mysql library here." - ) +) endif( WIN32 ) # On Windows you typically don't need to include any extra libraries @@ -185,6 +192,7 @@ endif( NOT WIN32 ) if( MYSQL_LIBRARY ) if( MYSQL_INCLUDE_DIR ) set( MYSQL_FOUND 1 ) + message(STATUS "Found MySQL library path: ${MYSQL_LIBRARY_PATH}") message(STATUS "Found MySQL library: ${MYSQL_LIBRARY}") message(STATUS "Found MySQL headers: ${MYSQL_INCLUDE_DIR}") else( MYSQL_INCLUDE_DIR ) diff --git a/src/mangosd/CMakeLists.txt b/src/mangosd/CMakeLists.txt index 0316d845..f586e2b6 100644 --- a/src/mangosd/CMakeLists.txt +++ b/src/mangosd/CMakeLists.txt @@ -158,9 +158,6 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mangosd.conf.dist DESTINATION ${CONF_I if(WIN32 AND MSVC) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/\${BUILD_TYPE}/${EXECUTABLE_NAME}.pdb" DESTINATION "${BIN_DIR}" CONFIGURATIONS Debug) - add_custom_command(TARGET ${EXECUTABLE_NAME} - POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_BINARY_DIR}/mangosd.conf.dist" "${CONF_COPY_DIR}" - ) endif() #Copy dlls to build dir @@ -168,12 +165,12 @@ if(WIN32) if(MSVC) add_custom_command(TARGET ${EXECUTABLE_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_INCLUDE_DIR}/../lib/libmysql.dll" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/" + COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_LIBRARY_PATH}/libmysql.dll" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/" ) elseif(XCODE) add_custom_command(TARGET ${EXECUTABLE_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_INCLUDE_DIR}/../lib/libmysql.dll" "${CMAKE_BINARY_DIR}/bin/" + COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_LIBRARY}" "${CMAKE_BINARY_DIR}/bin/" ) endif() endif() From 303aacbd4b31a47c2fe4172b8af2916217268c02 Mon Sep 17 00:00:00 2001 From: Olion Date: Sat, 6 Jun 2015 20:55:55 +0300 Subject: [PATCH 2/4] [Build]Fix of the previous: copy mangosd config --- src/mangosd/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mangosd/CMakeLists.txt b/src/mangosd/CMakeLists.txt index f586e2b6..693f36e9 100644 --- a/src/mangosd/CMakeLists.txt +++ b/src/mangosd/CMakeLists.txt @@ -158,6 +158,9 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mangosd.conf.dist DESTINATION ${CONF_I if(WIN32 AND MSVC) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/\${BUILD_TYPE}/${EXECUTABLE_NAME}.pdb" DESTINATION "${BIN_DIR}" CONFIGURATIONS Debug) + add_custom_command(TARGET ${EXECUTABLE_NAME} + POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_BINARY_DIR}/mangosd.conf.dist" "${CONF_COPY_DIR}" + ) endif() #Copy dlls to build dir From 5e9bee65d50284f7f38ee5302690e4427eb2d640 Mon Sep 17 00:00:00 2001 From: Olion Date: Sat, 6 Jun 2015 21:40:10 +0300 Subject: [PATCH 3/4] [Build]Remove policy CMP0005 --- CMakeLists.txt | 1 - src/mangosd/CMakeLists.txt | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7984b441..ea92d995 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,6 @@ cmake_minimum_required(VERSION 2.8) if(POLICY CMP0043) cmake_policy(SET CMP0043 OLD) endif() -cmake_policy(SET CMP0005 OLD) set(CMAKE_SKIP_BUILD_RPATH FALSE) set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) diff --git a/src/mangosd/CMakeLists.txt b/src/mangosd/CMakeLists.txt index 693f36e9..8306a2d2 100644 --- a/src/mangosd/CMakeLists.txt +++ b/src/mangosd/CMakeLists.txt @@ -173,7 +173,7 @@ if(WIN32) elseif(XCODE) add_custom_command(TARGET ${EXECUTABLE_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_LIBRARY}" "${CMAKE_BINARY_DIR}/bin/" + COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_LIBRARY_PATH}/libmysql.dll" "${CMAKE_BINARY_DIR}/bin/" ) endif() endif() From 42b43ef3630d6609281ca99dffb1b41bc5521f83 Mon Sep 17 00:00:00 2001 From: Olion Date: Sat, 6 Jun 2015 22:26:02 +0300 Subject: [PATCH 4/4] [Build]Rename the cmake variable respecting conventions --- cmake/FindMySQL.cmake | 6 +++--- src/mangosd/CMakeLists.txt | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index 313ee7f5..c122df09 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -117,7 +117,7 @@ if( UNIX ) endif( UNIX ) if( WIN32 ) - find_path( MYSQL_LIBRARY_PATH + find_path( MYSQL_LIBRARY_DIR NAMES libmysql.lib PATHS @@ -167,7 +167,7 @@ find_library( MYSQL_LIBRARY NAMES libmysql PATHS - "${MYSQL_LIBRARY_PATH}" + "${MYSQL_LIBRARY_DIR}" DOC "Specify the location of the mysql library here." ) endif( WIN32 ) @@ -192,7 +192,7 @@ endif( NOT WIN32 ) if( MYSQL_LIBRARY ) if( MYSQL_INCLUDE_DIR ) set( MYSQL_FOUND 1 ) - message(STATUS "Found MySQL library path: ${MYSQL_LIBRARY_PATH}") + message(STATUS "Found MySQL library path: ${MYSQL_LIBRARY_DIR}") message(STATUS "Found MySQL library: ${MYSQL_LIBRARY}") message(STATUS "Found MySQL headers: ${MYSQL_INCLUDE_DIR}") else( MYSQL_INCLUDE_DIR ) diff --git a/src/mangosd/CMakeLists.txt b/src/mangosd/CMakeLists.txt index 8306a2d2..ed85e392 100644 --- a/src/mangosd/CMakeLists.txt +++ b/src/mangosd/CMakeLists.txt @@ -168,12 +168,12 @@ if(WIN32) if(MSVC) add_custom_command(TARGET ${EXECUTABLE_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_LIBRARY_PATH}/libmysql.dll" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/" + COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_LIBRARY_DIR}/libmysql.dll" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/" ) elseif(XCODE) add_custom_command(TARGET ${EXECUTABLE_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_LIBRARY_PATH}/libmysql.dll" "${CMAKE_BINARY_DIR}/bin/" + COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_LIBRARY_DIR}/libmysql.dll" "${CMAKE_BINARY_DIR}/bin/" ) endif() endif()