From d63b601f61b06f50fb18ae4f45fb54de03094e12 Mon Sep 17 00:00:00 2001 From: click Date: Tue, 15 Jun 2010 19:19:17 +0200 Subject: First part of supporting CMake under Windows - this is WIP, and if you want to work on it, be on IRC. This is NOT a complete product, but we need all hands on deck to get this sorted out ASAP, and as such we throw it in. No changes are done to Windows buildmethods untill this is -completed- and -working-. --HG-- branch : trunk --- cmake/FindMySQL.cmake | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 cmake/FindMySQL.cmake (limited to 'cmake/FindMySQL.cmake') diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake new file mode 100644 index 00000000000..09db299f234 --- /dev/null +++ b/cmake/FindMySQL.cmake @@ -0,0 +1,134 @@ +# +# Find the MySQL client includes and library +# + +# This module defines +# MYSQL_INCLUDE_DIRECTORY, where to find mysql.h +# MYSQL_LIBRARIES, the libraries to link against to connect to MySQL +# MYSQL_FOUND, if false, you cannot build anything that requires MySQL. + +# also defined, but not for general use are +# MYSQL_LIBRARY, where to find the MySQL library. + +set( MYSQL_FOUND 0 ) + +if( UNIX ) + set(MYSQL_CONFIG_PREFER_PATH "$ENV{MYSQL_HOME}/bin" CACHE FILEPATH + "preferred path to MySQL (mysql_config)" + ) + + find_program(MYSQL_CONFIG mysql_config + ${MYSQL_CONFIG_PREFER_PATH} + /usr/local/mysql/bin/ + /usr/local/bin/ + /usr/bin/ + ) + + if( MYSQL_CONFIG ) + message(STATUS "Using mysql-config: ${MYSQL_CONFIG}") + # set INCLUDE_DIR + exec_program(${MYSQL_CONFIG} + ARGS --include + OUTPUT_VARIABLE MY_TMP + ) + + string(REGEX REPLACE "-I([^ ]*)( .*)?" "\\1" MY_TMP "${MY_TMP}") + set(MYSQL_ADD_INCLUDE_DIRECTORIES ${MY_TMP} CACHE FILEPATH INTERNAL) + # set LIBRARY_DIR + exec_program(${MYSQL_CONFIG} + ARGS --libs_r + OUTPUT_VARIABLE MY_TMP + ) + set(MYSQL_ADD_LIBRARIES "") + string(REGEX MATCHALL "-l[^ ]*" MYSQL_LIB_LIST "${MY_TMP}") + foreach(LIB ${MYSQL_LIB_LIST}) + string(REGEX REPLACE "[ ]*-l([^ ]*)" "\\1" LIB "${LIB}") + list(APPEND MYSQL_ADD_LIBRARIES "${LIB}") + endforeach(LIB ${MYSQL_LIBS}) + + set(MYSQL_ADD_LIBRARY_PATH "") + string(REGEX MATCHALL "-L[^ ]*" MYSQL_LIBDIR_LIST "${MY_TMP}") + foreach(LIB ${MYSQL_LIBDIR_LIST}) + string(REGEX REPLACE "[ ]*-L([^ ]*)" "\\1" LIB "${LIB}") + list(APPEND MYSQL_ADD_LIBRARY_PATH "${LIB}") + endforeach(LIB ${MYSQL_LIBS}) + + else( MYSQL_CONFIG ) + set(MYSQL_ADD_LIBRARIES "") + list(APPEND MYSQL_ADD_LIBRARIES "mysqlclient") + endif( MYSQL_CONFIG ) +endif( UNIX ) + +find_path(MYSQL_INCLUDE_DIRECTORIES + NAMES + mysql.h + PATHS + ${MYSQL_ADD_LIBRARY_DIR} + /usr/include + /usr/include/mysql + /usr/local/include + /usr/local/include/mysql + /usr/local/mysql/include + "C:/Program Files/MySQL/include" + "C:/Program Files/MySQL/MySQL Server 5.0/include" + "C:/Program Files/MySQL/MySQL Server 5.1/include" + "C:/MySQL/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.0;Location]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.0;Location]/include" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/include" + "c:/msys/local/include" + DOC + "Specify the directory containing mysql.h." +) + +find_library( MYSQL_LIBRARY + NAMES + mysql libmysql mysqlclient + PATHS + ${MYSQL_ADD_INCLUDE_PATH} + /usr/lib + /usr/lib/mysql + /usr/local/lib + /usr/local/lib/mysql + /usr/local/mysql/lib + "C:/Program Files/MySQL/lib" + "C:/Program Files/MySQL/MySQL Server 5.0/lib/opt" + "C:/Program Files/MySQL/MySQL Server 5.1/lib/opt" + "C:/MySQL/lib/debug" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.0;Location]/lib/opt" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/lib/opt" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.0;Location]/lib/opt" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/lib/opt" + "c:/msys/local/include" + DOC "Specify the location of the mysql library here." +) + +# On Windows you typically don't need to include any extra libraries +# to build MYSQL stuff. + +if( NOT WIN32 ) + find_library( MYSQL_EXTRA_LIBRARIES + NAMES + z zlib + PATHS + /usr/lib + /usr/local/lib + DOC + "if more libraries are necessary to link in a MySQL client (typically zlib), specify them here." + ) +else( NOT WIN32 ) + set( MYSQL_EXTRA_LIBRARIES "" ) +endif( NOT WIN32 ) + +if( MYSQL_LIBRARY ) + if( MYSQL_INCLUDE_DIRECTORIES ) + set( MYSQL_FOUND 1 ) + message(STATUS "Found MySQL library: ${MYSQL_LIBRARY}") + message(STATUS "Found MySQL headers: ${MYSQL_INCLUDE_DIRECTORIES}") + else( MYSQL_INCLUDE_DIRECTORIES ) + message(FATAL_ERROR "Could not find MySQL headers! Please install the development-libraries and headers.") + endif( MYSQL_INCLUDE_DIRECTORIES ) + mark_as_advanced( MYSQL_FOUND MYSQL_LIBRARY MYSQL_EXTRA_LIBRARIES MYSQL_INCLUDE_DIRECTORY ) +endif( MYSQL_LIBRARY ) + -- cgit v1.2.3 From 5d7bed7222ae2505c05ed6f5c97f0639f2e2999f Mon Sep 17 00:00:00 2001 From: click Date: Wed, 16 Jun 2010 03:43:09 +0200 Subject: Adjust CMake "searchmacros" bit so that they point to correct locations --HG-- branch : trunk --- cmake/FindACE.cmake | 14 +++---- cmake/FindMySQL.cmake | 14 +++---- cmake/FindOpenSSL.cmake | 20 +++++----- src/server/authserver/CMakeLists.txt | 44 +++++++++++----------- src/server/worldserver/CMakeLists.txt | 70 +++++++++++++++++------------------ 5 files changed, 81 insertions(+), 81 deletions(-) (limited to 'cmake/FindMySQL.cmake') diff --git a/cmake/FindACE.cmake b/cmake/FindACE.cmake index f49dc8cf73a..4ade5f64b03 100644 --- a/cmake/FindACE.cmake +++ b/cmake/FindACE.cmake @@ -3,7 +3,7 @@ # # This module defines -# ACE_INCLUDE_DIRECTORIES, where to find ace.h +# ACE_INCLUDE_DIR, where to find ace.h # ACE_LIBRARIES, the libraries to link against # ACE_FOUND, if false, you cannot build anything that requires ACE @@ -13,7 +13,7 @@ set( ACE_FOUND 0 ) if ( UNIX ) - FIND_PATH( ACE_INCLUDE_DIRECTORIES + FIND_PATH( ACE_INCLUDE_DIR NAMES ace/ACE.h PATHS @@ -52,14 +52,14 @@ if ( UNIX ) # ) if ( ACE_LIBRARY ) - if ( ACE_INCLUDE_DIRECTORIES ) + if ( ACE_INCLUDE_DIR ) set( ACE_FOUND 1 ) message( STATUS "Found ACE library: ${ACE_LIBRARY}") - message( STATUS "Found ACE headers: ${ACE_INCLUDE_DIRECTORIES}") - else ( ACE_INCLUDE_DIRECTORIES ) + message( STATUS "Found ACE headers: ${ACE_INCLUDE_DIR}") + else ( ACE_INCLUDE_DIR ) message(FATAL_ERROR "Could not find ACE headers! Please install ACE libraries and headers") - endif ( ACE_INCLUDE_DIRECTORIES ) + endif ( ACE_INCLUDE_DIR ) endif ( ACE_LIBRARY ) - mark_as_advanced( ACE_FOUND ACE_LIBRARY ACE_EXTRA_LIBRARIES ACE_INCLUDE_DIRECTORIES ) + mark_as_advanced( ACE_FOUND ACE_LIBRARY ACE_EXTRA_LIBRARIES ACE_INCLUDE_DIR ) endif (UNIX) diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index 09db299f234..e213fb1126d 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -3,7 +3,7 @@ # # This module defines -# MYSQL_INCLUDE_DIRECTORY, where to find mysql.h +# MYSQL_INCLUDE_DIR, where to find mysql.h # MYSQL_LIBRARIES, the libraries to link against to connect to MySQL # MYSQL_FOUND, if false, you cannot build anything that requires MySQL. @@ -59,7 +59,7 @@ if( UNIX ) endif( MYSQL_CONFIG ) endif( UNIX ) -find_path(MYSQL_INCLUDE_DIRECTORIES +find_path(MYSQL_INCLUDE_DIR NAMES mysql.h PATHS @@ -122,13 +122,13 @@ else( NOT WIN32 ) endif( NOT WIN32 ) if( MYSQL_LIBRARY ) - if( MYSQL_INCLUDE_DIRECTORIES ) + if( MYSQL_INCLUDE_DIR ) set( MYSQL_FOUND 1 ) message(STATUS "Found MySQL library: ${MYSQL_LIBRARY}") - message(STATUS "Found MySQL headers: ${MYSQL_INCLUDE_DIRECTORIES}") - else( MYSQL_INCLUDE_DIRECTORIES ) + message(STATUS "Found MySQL headers: ${MYSQL_INCLUDE_DIR}") + else( MYSQL_INCLUDE_DIR ) message(FATAL_ERROR "Could not find MySQL headers! Please install the development-libraries and headers.") - endif( MYSQL_INCLUDE_DIRECTORIES ) - mark_as_advanced( MYSQL_FOUND MYSQL_LIBRARY MYSQL_EXTRA_LIBRARIES MYSQL_INCLUDE_DIRECTORY ) + endif( MYSQL_INCLUDE_DIR ) + mark_as_advanced( MYSQL_FOUND MYSQL_LIBRARY MYSQL_EXTRA_LIBRARIES MYSQL_INCLUDE_DIR ) endif( MYSQL_LIBRARY ) diff --git a/cmake/FindOpenSSL.cmake b/cmake/FindOpenSSL.cmake index ed72fd7527a..7f50394cbfc 100644 --- a/cmake/FindOpenSSL.cmake +++ b/cmake/FindOpenSSL.cmake @@ -3,19 +3,19 @@ # # This module defines -# OPENSSL_INCLUDE_DIRECTORIES, where to find openssl.h +# OPENSSL_INCLUDE_DIR, where to find openssl.h # OPENSSL_LIBRARIES, the libraries to link against to connect to MySQL # OPENSSL_FOUND, if false, you cannot build anything that requires MySQL. # also defined, but not for general use are # OPENSSL_LIBRARY, where to find the MySQL library. -if( OPENSSL_INCLUDE_DIRECTORIES AND OPENSSL_LIBRARIES ) +if( OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES ) # in cache already set(OPENSSL_FOUND 1) -else( OPENSSL_INCLUDE_DIRECTORIES AND OPENSSL_LIBRARIES ) +else( OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES ) set(OPENSSL_FOUND 0) - find_path(OPENSSL_INCLUDE_DIRECTORIES + find_path(OPENSSL_INCLUDE_DIR NAMES ssl.h PATHS @@ -64,15 +64,15 @@ else( OPENSSL_INCLUDE_DIRECTORIES AND OPENSSL_LIBRARIES ) endif( WIN32 ) if( OPENSSL_LIBRARIES ) - if( OPENSSL_INCLUDE_DIRECTORIES ) + if( OPENSSL_INCLUDE_DIR ) set( OPENSSL_FOUND 1 ) message(STATUS "Found OpenSSL library: ${OPENSSL_LIBRARIES}") - message(STATUS "Found OpenSSL headers: ${OPENSSL_INCLUDE_DIRECTORIES}") - else ( OPENSSL_INCLUDE_DIRECTORIES ) + message(STATUS "Found OpenSSL headers: ${OPENSSL_INCLUDE_DIR}") + else ( OPENSSL_INCLUDE_DIR ) message(FATAL_ERROR "Could not find OpenSSL headers! Please install the development-headers") - endif( OPENSSL_INCLUDE_DIRECTORIES ) + endif( OPENSSL_INCLUDE_DIR ) else( OPENSSL_LIBRARIES ) message(FATAL_ERROR "Could not find OpenSSL libraries! Please install the library before continuing") endif( OPENSSL_LIBRARIES ) - mark_as_advanced( OPENSSL_FOUND OPENSSL_LIBRARIES OPENSSL_EXTRA_LIBRARIES OPENSSL_INCLUDE_DIRECTORIES ) -endif( OPENSSL_INCLUDE_DIRECTORIES AND OPENSSL_LIBRARIES ) + mark_as_advanced( OPENSSL_FOUND OPENSSL_LIBRARIES OPENSSL_EXTRA_LIBRARIES OPENSSL_INCLUDE_DIR ) +endif( OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES ) diff --git a/src/server/authserver/CMakeLists.txt b/src/server/authserver/CMakeLists.txt index 0e15381424f..c3f5fe6331b 100644 --- a/src/server/authserver/CMakeLists.txt +++ b/src/server/authserver/CMakeLists.txt @@ -11,20 +11,22 @@ ########### authserver ############### SET(authserver_SRCS -Authentication/AuthCodes.cpp -Authentication/AuthCodes.h -Realms/RealmList.cpp -Realms/RealmList.h -Server/AuthSocket.cpp -Server/AuthSocket.h -Server/RealmSocket.h -Server/RealmSocket.cpp -Server/RealmAcceptor.h -Main.cpp + Authentication/AuthCodes.cpp + Authentication/AuthCodes.h + Realms/RealmList.cpp + Realms/RealmList.h + Server/AuthSocket.cpp + Server/AuthSocket.h + Server/RealmSocket.h + Server/RealmSocket.cpp + Server/RealmAcceptor.h + Main.cpp ) include_directories( ${ACE_INCLUDE_DIR} + ${MYSQL_INCLUDE_DIR} + ${OPENSSL_INCLUDE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src/server/shared ${CMAKE_SOURCE_DIR}/src/server/shared/Database @@ -37,38 +39,36 @@ include_directories( ${CMAKE_SOURCE_DIR}/src/server/authserver/Authentication ${CMAKE_SOURCE_DIR}/src/server/authserver/Realms ${CMAKE_SOURCE_DIR}/src/server/authserver/Server - ${MYSQL_INCLUDE_DIR} ) SET(authserver_LINK_FLAGS "") add_executable(authserver ${authserver_SRCS}) add_definitions( --D_TRINITY_REALM_CONFIG='"${CONF_DIR}/authserver.conf"' + -D_TRINITY_REALM_CONFIG='"${CONF_DIR}/authserver.conf"' ) SET(trinity-realm_LINK_FLAGS "-pthread ${authserver_LINK_FLAGS}") IF (CMAKE_SYSTEM_NAME MATCHES "Darwin") - SET(authserver_LINK_FLAGS "-framework Carbon ${authserver_LINK_FLAGS}") + SET(authserver_LINK_FLAGS "-framework Carbon ${authserver_LINK_FLAGS}") ENDIF (CMAKE_SYSTEM_NAME MATCHES "Darwin") SET_TARGET_PROPERTIES(authserver PROPERTIES LINK_FLAGS "${authserver_LINK_FLAGS}") target_link_libraries( -authserver -shared -trinitydatabase -trinityauth -trinityconfig -${SSLLIB} -${MYSQL_LIBRARIES} -${OSX_LIBS} + authserver + shared + trinitydatabase + trinityauth + trinityconfig + ${MYSQL_LIBRARY} + ${OPENSSL_LIBRARIES} + ${OSX_LIBS} ) install(TARGETS authserver DESTINATION bin) - ########### install files ############### install(FILES authserver.conf.dist DESTINATION etc) diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt index a47555307e7..6b496aa7794 100644 --- a/src/server/worldserver/CMakeLists.txt +++ b/src/server/worldserver/CMakeLists.txt @@ -11,19 +11,21 @@ ########### worldserver ############### SET(worldserver_SRCS -CommandLine/CliRunnable.cpp -CommandLine/CliRunnable.h -RemoteAccess/RASocket.cpp -RemoteAccess/RASocket.h -WorldThread/WorldRunnable.cpp -WorldThread/WorldRunnable.h -Main.cpp -Master.cpp -Master.h + CommandLine/CliRunnable.cpp + CommandLine/CliRunnable.h + RemoteAccess/RASocket.cpp + RemoteAccess/RASocket.h + WorldThread/WorldRunnable.cpp + WorldThread/WorldRunnable.h + Main.cpp + Master.cpp + Master.h ) include_directories( ${ACE_INCLUDE_DIR} + ${MYSQL_INCLUDE_DIR} + ${OPENSSL_INCLUDE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/externals/sockets/include ${CMAKE_SOURCE_DIR}/externals/mersennetwister @@ -115,56 +117,54 @@ include_directories( ${CMAKE_SOURCE_DIR}/src/server/worldserver/CommandLine ${CMAKE_SOURCE_DIR}/src/server/worldserver/RemoteAccess ${CMAKE_SOURCE_DIR}/src/server/worldserver/WorldThread - ${MYSQL_INCLUDE_DIR} ) SET(worldserver_LINK_FLAGS "") add_executable(worldserver ${worldserver_SRCS}) add_definitions( --D_TRINITY_CORE_CONFIG='"${CONF_DIR}/worldserver.conf"' + -D_TRINITY_CORE_CONFIG='"${CONF_DIR}/worldserver.conf"' ) SET(worldserver_LINK_FLAGS "-pthread ${worldserver_LINK_FLAGS}") IF (CMAKE_SYSTEM_NAME MATCHES "Darwin") - SET(worldserver_LINK_FLAGS "-framework Carbon ${worldserver_LINK_FLAGS}") - SET(SCRIPT_LIB "") + SET(worldserver_LINK_FLAGS "-framework Carbon ${worldserver_LINK_FLAGS}") + SET(SCRIPT_LIB "") ENDIF (CMAKE_SYSTEM_NAME MATCHES "Darwin") SET_TARGET_PROPERTIES(worldserver PROPERTIES LINK_FLAGS "${worldserver_LINK_FLAGS}") if(DO_SCRIPTS) - SET(SCRIPT_LIB "scripts") + SET(SCRIPT_LIB "scripts") else(DO_SCRIPTS) - SET(SCRIPT_LIB "") + SET(SCRIPT_LIB "") endif(DO_SCRIPTS) target_link_libraries( -worldserver -game -shared -zlib -trinitysockets -trinitydatabase -trinityauth -trinityconfig -collision -g3dlib -jemalloc -${SCRIPT_LIB} -${READLINE_LIBRARY} -${TERMCAP_LIBRARY} -${MYSQL_LIBRARIES} -${SSLLIB} -${ACE_LIBRARY} -${ZLIB} -${OSX_LIBS} + worldserver + game + shared + zlib + trinitysockets + trinitydatabase + trinityauth + trinityconfig + collision + g3dlib + jemalloc + ${SCRIPT_LIB} + ${READLINE_LIBRARY} + ${TERMCAP_LIBRARY} + ${ACE_LIBRARY} + ${MYSQL_LIBRARY} + ${OPENSSL_LIBRARIES} + ${ZLIB} + ${OSX_LIBS} ) install(TARGETS worldserver DESTINATION bin) - ########### install files ############### install(FILES worldserver.conf.dist DESTINATION etc) -- cgit v1.2.3 From b637ddf1ce9f2fc593f4ed32d0e90462eac20ed3 Mon Sep 17 00:00:00 2001 From: click Date: Thu, 17 Jun 2010 00:22:12 +0200 Subject: Tempfix for detecting the threadsafe mysl-library (the detectionroutine needs to properly use mysql_config if available, and for some odd reason it doesn't) --HG-- branch : trunk --- cmake/FindMySQL.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cmake/FindMySQL.cmake') diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index e213fb1126d..bfe12cd1b09 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -84,7 +84,7 @@ find_path(MYSQL_INCLUDE_DIR find_library( MYSQL_LIBRARY NAMES - mysql libmysql mysqlclient + mysql libmysql mysqlclient_r PATHS ${MYSQL_ADD_INCLUDE_PATH} /usr/lib -- cgit v1.2.3 From d027d64f2fb5686526ae50c3c8732bf112ec47fe Mon Sep 17 00:00:00 2001 From: click Date: Thu, 17 Jun 2010 01:17:33 +0200 Subject: Fix issue where the MySQL library/include searchmacro wouldn't detect the MySQL-libraries/headers - it now respects the result from mysql_config properly --HG-- branch : trunk --- cmake/FindMySQL.cmake | 66 +++++++++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 28 deletions(-) (limited to 'cmake/FindMySQL.cmake') diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index bfe12cd1b09..984ff2f9539 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -33,7 +33,8 @@ if( UNIX ) ) string(REGEX REPLACE "-I([^ ]*)( .*)?" "\\1" MY_TMP "${MY_TMP}") - set(MYSQL_ADD_INCLUDE_DIRECTORIES ${MY_TMP} CACHE FILEPATH INTERNAL) + set(MYSQL_ADD_INCLUDE_PATH ${MY_TMP} CACHE FILEPATH INTERNAL) + #message("[DEBUG] MYSQL ADD_INCLUDE_PATH : ${MYSQL_ADD_INCLUDE_PATH}") # set LIBRARY_DIR exec_program(${MYSQL_CONFIG} ARGS --libs_r @@ -44,18 +45,20 @@ if( UNIX ) foreach(LIB ${MYSQL_LIB_LIST}) string(REGEX REPLACE "[ ]*-l([^ ]*)" "\\1" LIB "${LIB}") list(APPEND MYSQL_ADD_LIBRARIES "${LIB}") - endforeach(LIB ${MYSQL_LIBS}) + #message("[DEBUG] MYSQL ADD_LIBRARIES : ${MYSQL_ADD_LIBRARIES}") + endforeach(LIB ${MYSQL_LIB_LIST}) - set(MYSQL_ADD_LIBRARY_PATH "") + set(MYSQL_ADD_LIBRARIES_PATH "") string(REGEX MATCHALL "-L[^ ]*" MYSQL_LIBDIR_LIST "${MY_TMP}") foreach(LIB ${MYSQL_LIBDIR_LIST}) string(REGEX REPLACE "[ ]*-L([^ ]*)" "\\1" LIB "${LIB}") - list(APPEND MYSQL_ADD_LIBRARY_PATH "${LIB}") + list(APPEND MYSQL_ADD_LIBRARIES_PATH "${LIB}") + #message("[DEBUG] MYSQL ADD_LIBRARIES_PATH : ${MYSQL_ADD_LIBRARIES_PATH}") endforeach(LIB ${MYSQL_LIBS}) else( MYSQL_CONFIG ) set(MYSQL_ADD_LIBRARIES "") - list(APPEND MYSQL_ADD_LIBRARIES "mysqlclient") + list(APPEND MYSQL_ADD_LIBRARIES "mysqlclient_r") endif( MYSQL_CONFIG ) endif( UNIX ) @@ -63,7 +66,7 @@ find_path(MYSQL_INCLUDE_DIR NAMES mysql.h PATHS - ${MYSQL_ADD_LIBRARY_DIR} + ${MYSQL_ADD_INCLUDE_PATH} /usr/include /usr/include/mysql /usr/local/include @@ -82,27 +85,33 @@ find_path(MYSQL_INCLUDE_DIR "Specify the directory containing mysql.h." ) -find_library( MYSQL_LIBRARY - NAMES - mysql libmysql mysqlclient_r - PATHS - ${MYSQL_ADD_INCLUDE_PATH} - /usr/lib - /usr/lib/mysql - /usr/local/lib - /usr/local/lib/mysql - /usr/local/mysql/lib - "C:/Program Files/MySQL/lib" - "C:/Program Files/MySQL/MySQL Server 5.0/lib/opt" - "C:/Program Files/MySQL/MySQL Server 5.1/lib/opt" - "C:/MySQL/lib/debug" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.0;Location]/lib/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/lib/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.0;Location]/lib/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/lib/opt" - "c:/msys/local/include" - DOC "Specify the location of the mysql library here." -) +if( UNIX ) +foreach(LIB ${MYSQL_ADD_LIBRARIES}) +endif( UNIX ) + find_library( MYSQL_LIBRARY + NAMES + mysql libmysql ${LIB} + PATHS + ${MYSQL_ADD_LIBRARIES_PATH} + /usr/lib + /usr/lib/mysql + /usr/local/lib + /usr/local/lib/mysql + /usr/local/mysql/lib + "C:/Program Files/MySQL/lib" + "C:/Program Files/MySQL/MySQL Server 5.0/lib/opt" + "C:/Program Files/MySQL/MySQL Server 5.1/lib/opt" + "C:/MySQL/lib/debug" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.0;Location]/lib/opt" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/lib/opt" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.0;Location]/lib/opt" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/lib/opt" + "c:/msys/local/include" + DOC "Specify the location of the mysql library here." + ) +if( UNIX) +endforeach(LIB ${MYSQL_ADD_LIBRARY}) +endif( UNIX ) # On Windows you typically don't need to include any extra libraries # to build MYSQL stuff. @@ -130,5 +139,6 @@ if( MYSQL_LIBRARY ) message(FATAL_ERROR "Could not find MySQL headers! Please install the development-libraries and headers.") endif( MYSQL_INCLUDE_DIR ) mark_as_advanced( MYSQL_FOUND MYSQL_LIBRARY MYSQL_EXTRA_LIBRARIES MYSQL_INCLUDE_DIR ) +else( MYSQL_LIBRARY ) + message(FATAL_ERROR "Could not find the MySQL libraries! Please install the development-libraries and headers.") endif( MYSQL_LIBRARY ) - -- cgit v1.2.3 From bc704b4a552d761fe988247e22d23afd8a96f2ed Mon Sep 17 00:00:00 2001 From: Brian Date: Thu, 17 Jun 2010 10:29:53 -0600 Subject: * Fix logic in FindMySQL cmake file * *nix compiles again --HG-- branch : trunk --- cmake/FindMySQL.cmake | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'cmake/FindMySQL.cmake') diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index 984ff2f9539..aa62d89d9b5 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -87,7 +87,6 @@ find_path(MYSQL_INCLUDE_DIR if( UNIX ) foreach(LIB ${MYSQL_ADD_LIBRARIES}) -endif( UNIX ) find_library( MYSQL_LIBRARY NAMES mysql libmysql ${LIB} @@ -98,6 +97,17 @@ endif( UNIX ) /usr/local/lib /usr/local/lib/mysql /usr/local/mysql/lib + DOC "Specify the location of the mysql library here." + ) +endforeach(LIB ${MYSQL_ADD_LIBRARY}) +endif( UNIX ) + +if( WIN32 ) + find_library( MYSQL_LIBRARY + NAMES + mysql libmysql ${LIB} + PATHS + ${MYSQL_ADD_LIBRARIES_PATH} "C:/Program Files/MySQL/lib" "C:/Program Files/MySQL/MySQL Server 5.0/lib/opt" "C:/Program Files/MySQL/MySQL Server 5.1/lib/opt" @@ -109,9 +119,7 @@ endif( UNIX ) "c:/msys/local/include" DOC "Specify the location of the mysql library here." ) -if( UNIX) -endforeach(LIB ${MYSQL_ADD_LIBRARY}) -endif( UNIX ) +endif( WIN32 ) # On Windows you typically don't need to include any extra libraries # to build MYSQL stuff. -- cgit v1.2.3