diff --git a/CMakeLists.txt b/CMakeLists.txt index 76f8b811e0fd7b6ad3f2ed862f9fd4a022a1d8a0..4ae75e7da435d3b4b4d07b4a40586c977f95f2bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,8 +10,16 @@ set(CMAKE_MODULE_PATH "cmake_modules") set(cppunit_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(cppunit) +if (NOT CMAKE_COMPILER_IS_GNUCXX) +ADD_SUBDIRECTORY(msvc-deps) +else() +if (WIN32) +ADD_SUBDIRECTORY(msvc-deps/sqlite3) +else() set(sqlite3_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(sqlite3) +endif() +endif() set(mysql_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(mysql) @@ -22,6 +30,10 @@ find_package(purple) set(glib_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(glib) +set(libxml2_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") +find_package(libxml2) + + if (NOT WIN32) set(popt_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(popt) @@ -33,12 +45,14 @@ find_package(event) set(Swiften_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(Swiften) +if (CMAKE_COMPILER_IS_GNUCXX) set(openssl_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(openssl) +endif() set(Boost_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") if (WIN32) -set(Boost_USE_STATIC_LIBS ON) +set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) set(Boost_USE_STATIC_RUNTIME OFF) endif() @@ -60,8 +74,10 @@ find_package(event) set(pqxx_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(pqxx) +if (NOT WIN32) set(dbus_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(dbus) +endif() set(yahoo2_DIR "${CMAKE_SOURCE_DIR}/cmake_modules") find_package(yahoo2) @@ -82,7 +98,10 @@ if (SPECTRUM_VERSION) ADD_DEFINITIONS(-DSPECTRUM_VERSION="${SPECTRUM_VERSION}") else (SPECTRUM_VERSION) if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git) - execute_process(COMMAND git "--git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git" rev-parse --short HEAD + if (NOT GIT_EXECUTABLE) + set (GIT_EXECUTABLE git) + endif() + execute_process(COMMAND ${GIT_EXECUTABLE} "--git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git" rev-parse --short HEAD OUTPUT_VARIABLE GIT_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE ) @@ -101,8 +120,14 @@ if (SQLITE3_FOUND) include_directories(${SQLITE3_INCLUDE_DIR}) message("SQLite3 : yes") else (SQLITE3_FOUND) +if (WIN32) + ADD_DEFINITIONS(-DWITH_SQLITE) + include_directories(msvc-deps/sqlite3) + message("SQLite3 : bundled") +else() set(SQLITE3_LIBRARIES "") message("SQLite3 : no") +endif() endif (SQLITE3_FOUND) if (MYSQL_FOUND) @@ -155,15 +180,19 @@ if (PROTOBUF_FOUND) message("IRC plugin : no (install libCommuni and libprotobuf-dev)") endif() +if (NOT WIN32) message("Frotz plugin : yes") message("SMSTools3 plugin : yes") - +else() + message("Frotz plugin : no") + message("SMSTools3 plugin : no") if(${LIBDBUSGLIB_FOUND}) message("Skype plugin : yes") include_directories(${LIBDBUSGLIB_INCLUDE_DIRS}) else() message("Skype plugin : no (install dbus-glib-devel)") endif() +endif() # We have our own copy now... # if(YAHOO2_FOUND) @@ -196,25 +225,17 @@ else() endif() if (WIN32) +ADD_DEFINITIONS(-DLOG4CXX_STATIC) ADD_DEFINITIONS(-D_WIN32_WINNT=0x501) ADD_DEFINITIONS(-DWIN32_LEAN_AND_MEAN) +ADD_DEFINITIONS(-DBOOST_USE_WINDOWS_H) +ADD_DEFINITIONS(-DBOOST_THREAD_USE_LIB) endif() if(CMAKE_BUILD_TYPE MATCHES Debug) if (CMAKE_COMPILER_IS_GNUCXX) ADD_DEFINITIONS(-O0) ADD_DEFINITIONS(-ggdb) - ADD_DEFINITIONS(-Wall) - ADD_DEFINITIONS(-W) - ADD_DEFINITIONS(-Wcast-align) - ADD_DEFINITIONS(-Wextra -Wno-sign-compare -Wno-unused-parameter) - ADD_DEFINITIONS(-Winit-self) - ADD_DEFINITIONS(-Wmissing-declarations) - ADD_DEFINITIONS(-Wpointer-arith) - ADD_DEFINITIONS(-Wreorder) - ADD_DEFINITIONS(-Woverloaded-virtual) - ADD_DEFINITIONS(-Wsign-promo) - ADD_DEFINITIONS(-Wundef -Wunused) endif() ADD_DEFINITIONS(-DDEBUG) message("Debug : yes") @@ -231,7 +252,10 @@ include_directories(include) include_directories(${EVENT_INCLUDE_DIRS}) include_directories(${SWIFTEN_INCLUDE_DIR}) include_directories(${Boost_INCLUDE_DIRS}) + +if (CMAKE_COMPILER_IS_GNUCXX) include_directories(${OPENSSL_INCLUDE_DIR}) +endif() ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(plugin)