servatrice's CMakeLists.txt: major overhaul
* Remove cockatrice_HEADERS (obsoleted by automoc) * Remove compilation flags definition and Qt4 finding calls * Make use of CMAKE_INSTALL_PREFIX * use INSTALL(TARGETS) in place of INSTALL(PROGRAM) * Osx: create a proper application bundle * Added comments
This commit is contained in:
parent
0f02c6b0a2
commit
4b49458eeb
1 changed files with 52 additions and 27 deletions
|
@ -1,9 +1,12 @@
|
||||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
# CMakeLists for servatrice directory
|
||||||
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
#
|
||||||
|
# provides the servatrice binary
|
||||||
|
|
||||||
PROJECT(servatrice)
|
PROJECT(servatrice)
|
||||||
|
|
||||||
# cmake modules
|
# cmake module for libgcrypt is included in current directory
|
||||||
include(GNUInstallDirs)
|
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
FIND_PACKAGE(Libgcrypt REQUIRED)
|
||||||
|
|
||||||
SET(servatrice_SOURCES
|
SET(servatrice_SOURCES
|
||||||
src/main.cpp
|
src/main.cpp
|
||||||
|
@ -16,29 +19,12 @@ SET(servatrice_SOURCES
|
||||||
src/isl_interface.cpp
|
src/isl_interface.cpp
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/version_string.cpp
|
${CMAKE_CURRENT_BINARY_DIR}/version_string.cpp
|
||||||
)
|
)
|
||||||
SET(servatrice_HEADERS
|
|
||||||
src/servatrice.h
|
|
||||||
src/servatrice_connection_pool.h
|
|
||||||
src/servatrice_database_interface.h
|
|
||||||
src/server_logger.h
|
|
||||||
src/serversocketinterface.h
|
|
||||||
src/isl_interface.h
|
|
||||||
)
|
|
||||||
|
|
||||||
SET(QT_DONTUSE_QTGUI)
|
SET(QT_DONTUSE_QTGUI)
|
||||||
SET(QT_USE_QTNETWORK TRUE)
|
SET(QT_USE_QTNETWORK TRUE)
|
||||||
SET(QT_USE_QTSQL TRUE)
|
SET(QT_USE_QTSQL TRUE)
|
||||||
FIND_PACKAGE(Qt4 REQUIRED)
|
|
||||||
FIND_PACKAGE(Protobuf REQUIRED)
|
|
||||||
FIND_PACKAGE(Libgcrypt REQUIRED)
|
|
||||||
FIND_PACKAGE(Threads)
|
|
||||||
|
|
||||||
#set(CMAKE_BUILD_TYPE Release)
|
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb -O2")
|
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
|
|
||||||
|
|
||||||
QT4_WRAP_CPP(servatrice_HEADERS_MOC ${servatrice_HEADERS})
|
|
||||||
|
|
||||||
|
# Include directories
|
||||||
INCLUDE(${QT_USE_FILE})
|
INCLUDE(${QT_USE_FILE})
|
||||||
INCLUDE_DIRECTORIES(../common)
|
INCLUDE_DIRECTORIES(../common)
|
||||||
INCLUDE_DIRECTORIES(${LIBGCRYPT_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${LIBGCRYPT_INCLUDE_DIR})
|
||||||
|
@ -46,7 +32,8 @@ INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../common)
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../common)
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
ADD_EXECUTABLE(servatrice ${servatrice_SOURCES} ${servatrice_HEADERS_MOC})
|
# Build servatrice binary and link it
|
||||||
|
ADD_EXECUTABLE(servatrice MACOSX_BUNDLE ${servatrice_SOURCES} ${servatrice_MOC_SRCS})
|
||||||
TARGET_LINK_LIBRARIES(servatrice cockatrice_common ${QT_LIBRARIES} ${LIBGCRYPT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
TARGET_LINK_LIBRARIES(servatrice cockatrice_common ${QT_LIBRARIES} ${LIBGCRYPT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
#add_custom_target(versionheader ALL DEPENDS version_header)
|
#add_custom_target(versionheader ALL DEPENDS version_header)
|
||||||
|
@ -56,4 +43,42 @@ add_custom_command(
|
||||||
)
|
)
|
||||||
|
|
||||||
# install rules
|
# install rules
|
||||||
INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/servatrice DESTINATION ${CMAKE_INSTALL_BINDIR})
|
if(UNIX)
|
||||||
|
if(APPLE)
|
||||||
|
INSTALL(TARGETS servatrice BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||||
|
else()
|
||||||
|
# Assume linux
|
||||||
|
INSTALL(TARGETS servatrice RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
|
||||||
|
endif()
|
||||||
|
elseif(WIN32)
|
||||||
|
INSTALL(TARGETS servatrice RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
set(plugin_dest_dir ${CMAKE_INSTALL_PREFIX}/servatrice.app/Contents/Plugins)
|
||||||
|
set(qtconf_dest_dir ${CMAKE_INSTALL_PREFIX}/servatrice.app/Contents/Resources)
|
||||||
|
|
||||||
|
# note: no codecs in qt5
|
||||||
|
# note: phonon_backend => mediaservice
|
||||||
|
# note: needs platform on osx
|
||||||
|
|
||||||
|
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
|
install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime
|
||||||
|
FILES_MATCHING REGEX "(codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/.*_debug\\.dylib")
|
||||||
|
else()
|
||||||
|
install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime
|
||||||
|
FILES_MATCHING REGEX "(codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/[^_]*\\.dylib")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
install(CODE "
|
||||||
|
file(WRITE \"${qtconf_dest_dir}/qt.conf\" \"[Paths]
|
||||||
|
Plugins = Plugins\")
|
||||||
|
" COMPONENT Runtime)
|
||||||
|
|
||||||
|
install(CODE "
|
||||||
|
file(GLOB_RECURSE QTPLUGINS
|
||||||
|
\"${plugin_dest_dir}/*.dylib\")
|
||||||
|
include(BundleUtilities)
|
||||||
|
fixup_bundle(\"${CMAKE_INSTALL_PREFIX}/servatrice.app\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR}\")
|
||||||
|
" COMPONENT Runtime)
|
||||||
|
endif()
|
||||||
|
|
Loading…
Reference in a new issue