aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorXanadu <none@none>2010-09-07 01:26:57 +0200
committerXanadu <none@none>2010-09-07 01:26:57 +0200
commit220c20729441931d26626f4370bbb613a9185e9e (patch)
treed93174fdc1f9e2e556aa4ef035657023063f08b2 /cmake
parentda5569bee68be1dcd416cdbca7584f9ef5e739ee (diff)
BuildSystem/Windows: * Added 5.1.50 (GA) MySQL client sources for crosscompiling (or lazy) windows people.
* Added an option to autosearch for your own installed MySQL as before. Note that default setting is to use the internal MySQL. * You can now build 32-bit even if your MySQL is x64 and vice versa. * Recommended MySQL server version for use with provided MySQL client sources is 5.1.x. * If your server version is different, let CMake autofind and use it instead (check EXTERNAL_MYSQL option) --HG-- branch : trunk
Diffstat (limited to 'cmake')
-rw-r--r--cmake/macros/FindMySQL.cmake121
-rw-r--r--cmake/options.cmake23
-rw-r--r--cmake/showoptions.cmake9
3 files changed, 90 insertions, 63 deletions
diff --git a/cmake/macros/FindMySQL.cmake b/cmake/macros/FindMySQL.cmake
index bc4edaf1c24..120fe19ae85 100644
--- a/cmake/macros/FindMySQL.cmake
+++ b/cmake/macros/FindMySQL.cmake
@@ -62,30 +62,34 @@ if( UNIX )
endif( MYSQL_CONFIG )
endif( UNIX )
-find_path(MYSQL_INCLUDE_DIR
- NAMES
- mysql.h
- PATHS
- ${MYSQL_ADD_INCLUDE_PATH}
- /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"
- "$ENV{ProgramFiles}/MySQL/*/include"
- "$ENV{SystemDrive}/MySQL/*/include"
- "c:/msys/local/include"
- DOC
- "Specify the directory containing mysql.h."
-)
+if( EXTERNAL_MYSQL )
+ find_path(MYSQL_INCLUDE_DIR
+ NAMES
+ mysql.h
+ PATHS
+ ${MYSQL_ADD_INCLUDE_PATH}
+ /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"
+ "$ENV{ProgramFiles}/MySQL/*/include"
+ "$ENV{SystemDrive}/MySQL/*/include"
+ "c:/msys/local/include"
+ DOC
+ "Specify the directory containing mysql.h."
+ )
+else( EXTERNAL_MYSQL )
+ set(MYSQL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/dep/mysqllite/include)
+endif( EXTERNAL_MYSQL )
if( UNIX )
foreach(LIB ${MYSQL_ADD_LIBRARIES})
@@ -105,24 +109,28 @@ endforeach(LIB ${MYSQL_ADD_LIBRARY})
endif( UNIX )
if( WIN32 )
- find_library( MYSQL_LIBRARY
- NAMES
- libmysql
- 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"
- "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"
- "$ENV{ProgramFiles}/MySQL/*/lib/opt"
- "$ENV{SystemDrive}/MySQL/*/lib/opt"
- "c:/msys/local/include"
- DOC "Specify the location of the mysql library here."
- )
+ if( EXTERNAL_MYSQL )
+ find_library( MYSQL_LIBRARY
+ NAMES
+ libmysql
+ 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"
+ "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"
+ "$ENV{ProgramFiles}/MySQL/*/lib/opt"
+ "$ENV{SystemDrive}/MySQL/*/lib/opt"
+ "c:/msys/local/include"
+ DOC "Specify the location of the mysql library here."
+ )
+ else( EXTERNAL_MYSQL )
+ set(MYSQL_LIBRARY libmysql)
+ endif( EXTERNAL_MYSQL )
endif( WIN32 )
# On Windows you typically don't need to include any extra libraries
@@ -142,15 +150,20 @@ else( NOT WIN32 )
set( MYSQL_EXTRA_LIBRARIES "" )
endif( NOT WIN32 )
-if( MYSQL_LIBRARY )
- if( MYSQL_INCLUDE_DIR )
- set( MYSQL_FOUND 1 )
- message(STATUS "Found MySQL library: ${MYSQL_LIBRARY}")
- 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_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 )
+if( EXTERNAL_MYSQL )
+ if( MYSQL_LIBRARY )
+ if( MYSQL_INCLUDE_DIR )
+ set( MYSQL_FOUND 1 )
+ message(STATUS "Found MySQL library: ${MYSQL_LIBRARY}")
+ 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 or use internal MySQL.")
+ 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 or use internal MySQL.")
+ endif( MYSQL_LIBRARY )
+else( EXTERNAL_MYSQL )
+ set( MYSQL_FOUND 1 )
+ message(STATUS "Using internal MySQL.")
+endif( EXTERNAL_MYSQL )
diff --git a/cmake/options.cmake b/cmake/options.cmake
index 5a580eff290..1e7374d1287 100644
--- a/cmake/options.cmake
+++ b/cmake/options.cmake
@@ -8,12 +8,17 @@
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-option(SERVERS "Build worldserver and authserver" 1)
-option(SCRIPTS "Build core with scripts included" 1)
-option(TOOLS "Build map/vmap extraction/assembler tools" 0)
-option(USE_SCRIPTPCH "Use precompiled headers when compiling scripts" 1)
-option(USE_COREPCH "Use precompiled headers when compiling servers" 1)
-option(USE_SFMT "Use SFMT as random numbergenerator" 0)
-option(WITH_WARNINGS "Show all warnings during compile" 1)
-option(WITH_COREDEBUG "Include additional debug-code in core" 0)
-option(WITH_SQL "Copy SQL files during installation" 0)
+option(SERVERS "Build worldserver and authserver" 1)
+option(SCRIPTS "Build core with scripts included" 1)
+option(TOOLS "Build map/vmap extraction/assembler tools" 0)
+option(USE_SCRIPTPCH "Use precompiled headers when compiling scripts" 1)
+option(USE_COREPCH "Use precompiled headers when compiling servers" 1)
+option(USE_SFMT "Use SFMT as random numbergenerator" 0)
+if(WIN32)
+ option(EXTERNAL_MYSQL "Use your own installed MySQL instead of the internal one" 0)
+else(WIN32)
+ set(EXTERNAL_MYSQL 0)
+endif(WIN32)
+option(WITH_WARNINGS "Show all warnings during compile" 1)
+option(WITH_COREDEBUG "Include additional debug-code in core" 0)
+option(WITH_SQL "Copy SQL files during installation" 0)
diff --git a/cmake/showoptions.cmake b/cmake/showoptions.cmake
index 00b1921cc38..41fecc052fe 100644
--- a/cmake/showoptions.cmake
+++ b/cmake/showoptions.cmake
@@ -63,6 +63,15 @@ else()
message("* Use SFMT for RNG : No (default)")
endif()
+if( WIN32 )
+ if( EXTERNAL_MYSQL )
+ message("* Use external MySQL : Yes")
+ add_definitions(-DUSE_SFMT_FOR_RNG)
+ else()
+ message("* Use external MySQL : No (default)")
+ endif()
+endif( WIN32 )
+
if( WITH_WARNINGS )
message("* Show all warnings : Yes")
else()