From 521adc308bed3757cd9a1304de03da9262e8d3ad Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Sat, 4 Aug 2012 12:35:39 -0300 Subject: [PATCH] Fix broken compilation in mingw32 --- src/framework/CMakeLists.txt | 4 +-- src/framework/cmake/FindMySQL.cmake | 16 +++++++++ src/framework/cmake/FindMysql.cmake | 49 --------------------------- src/framework/cmake/FindOpenSSL.cmake | 21 ++++++++++++ src/framework/stdext/compiler.h | 25 -------------- src/framework/stdext/coroutine.h | 5 +-- src/framework/util/crypt.cpp | 1 + src/framework/util/crypt.h | 2 +- 8 files changed, 42 insertions(+), 81 deletions(-) create mode 100644 src/framework/cmake/FindMySQL.cmake delete mode 100644 src/framework/cmake/FindMysql.cmake create mode 100644 src/framework/cmake/FindOpenSSL.cmake diff --git a/src/framework/CMakeLists.txt b/src/framework/CMakeLists.txt index 51eb2890..a48f77a8 100644 --- a/src/framework/CMakeLists.txt +++ b/src/framework/CMakeLists.txt @@ -172,7 +172,7 @@ if(WIN32) endif() set(Boost_USE_MULTITHREADED ON) set(Boost_USE_STATIC_LIBS ON) -find_package(Boost COMPONENTS system filesystem REQUIRED) +find_package(Boost COMPONENTS system filesystem thread chrono REQUIRED) #find lua if(LUAJIT) @@ -444,7 +444,7 @@ if(FRAMEWORK_XML) endif() if(FRAMEWORK_SQL) - find_package(Mysql REQUIRED) + find_package(MySQL REQUIRED) set(framework_INCLUDE_DIRS ${framework_INCLUDE_DIRS} ${MYSQL_INCLUDE_DIR}) set(framework_LIBRARIES ${framework_LIBRARIES} ${MYSQL_LIBRARY}) diff --git a/src/framework/cmake/FindMySQL.cmake b/src/framework/cmake/FindMySQL.cmake new file mode 100644 index 00000000..18ed0f48 --- /dev/null +++ b/src/framework/cmake/FindMySQL.cmake @@ -0,0 +1,16 @@ +# Try to find the mysql library +# MYSQL_FOUND - system has mysql +# MYSQL_INCLUDE_DIR - the mysql include directory +# MYSQL_LIBRARY - the mysql library + +FIND_PATH(MYSQL_INCLUDE_DIR NAMES mysql.h PATH_SUFFIXES mysql) +SET(_MYSQL_STATIC_LIBS mysqlclient.a mysqlclient_r.a) +SET(_MYSQL_SHARED_LIBS mysqlclient mysqlclient_r) +IF(USE_STATIC_LIBS) + FIND_LIBRARY(MYSQL_LIBRARY NAMES ${_MYSQL_STATIC_LIBS} ${_MYSQL_SHARED_LIBS}) +ELSE() + FIND_LIBRARY(MYSQL_LIBRARY NAMES ${_MYSQL_SHARED_LIBS} ${_MYSQL_STATIC_LIBS}) +ENDIF() +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(MySQL DEFAULT_MSG MYSQL_LIBRARY MYSQL_INCLUDE_DIR) +MARK_AS_ADVANCED(MYSQL_LIBRARY MYSQL_INCLUDE_DIR) diff --git a/src/framework/cmake/FindMysql.cmake b/src/framework/cmake/FindMysql.cmake deleted file mode 100644 index 8442fd1b..00000000 --- a/src/framework/cmake/FindMysql.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# - Find mysqlclient -# Find the native MySQL includes and library -# -# MYSQL_INCLUDE_DIR - where to find mysql.h, etc. -# MYSQL_LIBRARIES - List of libraries when using MySQL. -# MYSQL_FOUND - True if MySQL found. - -IF (MYSQL_INCLUDE_DIR) - # Already in cache, be silent - SET(MYSQL_FIND_QUIETLY TRUE) -ENDIF (MYSQL_INCLUDE_DIR) - -FIND_PATH(MYSQL_INCLUDE_DIR NAMES mysql.h - PATH_SUFFIXES mysql - /usr/local/include/mysql - /usr/include/mysql -) - -SET(MYSQL_NAMES mysqlclient mysqlclient_r libmysql.a) -FIND_LIBRARY(MYSQL_LIBRARY - NAMES ${MYSQL_NAMES} - PATHS /usr/lib /usr/local/lib - PATH_SUFFIXES mysql -) - -IF (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY) - SET(MYSQL_FOUND TRUE) - SET( MYSQL_LIBRARIES ${MYSQL_LIBRARY} ) -ELSE (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY) - SET(MYSQL_FOUND FALSE) - SET( MYSQL_LIBRARIES ) -ENDIF (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY) - -IF (MYSQL_FOUND) - IF (NOT MYSQL_FIND_QUIETLY) - MESSAGE(STATUS "Found MySQL: ${MYSQL_LIBRARY}") - ENDIF (NOT MYSQL_FIND_QUIETLY) -ELSE (MYSQL_FOUND) - IF (MYSQL_FIND_REQUIRED) - MESSAGE(STATUS "Looked for MySQL libraries named ${MYSQL_NAMES}.") - MESSAGE(FATAL_ERROR "Could NOT find MySQL library") - ENDIF (MYSQL_FIND_REQUIRED) -ENDIF (MYSQL_FOUND) - -MARK_AS_ADVANCED( - MYSQL_LIBRARY - MYSQL_INCLUDE_DIR - ) - diff --git a/src/framework/cmake/FindOpenSSL.cmake b/src/framework/cmake/FindOpenSSL.cmake new file mode 100644 index 00000000..76c9aae2 --- /dev/null +++ b/src/framework/cmake/FindOpenSSL.cmake @@ -0,0 +1,21 @@ +# Try to find the OpenSSL library +# OPENSSL_FOUND - system has OpenSSL +# OPENSSL_INCLUDE_DIR - the OpenSSL include directory +# OPENSSL_LIBRARY - the OpenSSL library + +FIND_PATH(OPENSSL_INCLUDE_DIR NAMES openssl/ssl.h) +SET(_OPENSSL_STATIC_LIBS libssl.a) +SET(_OPENSSL_SHARED_LIBS ssl.dll ssl) +SET(_OPENSSL_CRYPTO_STATIC_LIBS libcrypto.a) +SET(_OPENSSL_CRYPTO_SHARED_LIBS libcrypto.dll crypto) +IF(USE_STATIC_LIBS) + FIND_LIBRARY(OPENSSL_LIBRARY NAMES ${_OPENSSL_STATIC_LIBS} ${_OPENSSL_SHARED_LIBS}) + FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARY NAMES ${_OPENSSL_CRYPTO_STATIC_LIBS} ${_OPENSSL_CRYPTO_SHARED_LIBS}) +ELSE() + FIND_LIBRARY(OPENSSL_LIBRARY NAMES ${_OPENSSL_SHARED_LIBS} ${_OPENSSL_STATIC_LIBS}) + FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARY NAMES ${_OPENSSL_CRYPTO_SHARED_LIBS} ${_OPENSSL_CRYPTO_STATIC_LIBS}) +ENDIF() +SET(OPENSSL_LIBRARIES ${OPENSSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY}) +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENSSL DEFAULT_MSG OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR) +MARK_AS_ADVANCED(OPENSSL_LIBRARIES OPENSSL_LIBRARY OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) diff --git a/src/framework/stdext/compiler.h b/src/framework/stdext/compiler.h index 555bff2e..b0dc2a6a 100644 --- a/src/framework/stdext/compiler.h +++ b/src/framework/stdext/compiler.h @@ -37,29 +37,4 @@ #error "Sorry, you must enable C++0x to compile." #endif -// hack to enable std::thread on mingw32 4.6 -/* -#if !defined(_GLIBCXX_HAS_GTHREADS) && defined(__GNUG__) -#include -#include -#include -#include -#include -namespace std { - using boost::thread; - - using boost::mutex; - using boost::timed_mutex; - using boost::recursive_mutex; - using boost::recursive_timed_mutex; - - using boost::lock_guard; - using boost::unique_lock; - - using boost::condition_variable; - using boost::condition_variable_any; -} -#endif -*/ - #endif diff --git a/src/framework/stdext/coroutine.h b/src/framework/stdext/coroutine.h index b48ed41b..56082fb7 100644 --- a/src/framework/stdext/coroutine.h +++ b/src/framework/stdext/coroutine.h @@ -23,15 +23,12 @@ #ifndef COROUTINE_H #define COROUTINE_H -#include -#include +#include "thread.h" #include -#include #include namespace stdext { -// class coroutine { struct codata : public stdext::shared_object { diff --git a/src/framework/util/crypt.cpp b/src/framework/util/crypt.cpp index a880b7e4..278b2116 100644 --- a/src/framework/util/crypt.cpp +++ b/src/framework/util/crypt.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include diff --git a/src/framework/util/crypt.h b/src/framework/util/crypt.h index 673621dc..5571d68c 100644 --- a/src/framework/util/crypt.h +++ b/src/framework/util/crypt.h @@ -26,7 +26,7 @@ #include "../stdext/types.h" #include -#include +typedef struct rsa_st RSA; class Crypt {