Tidy-up CMakeLists.txt

master
Unknown 2019-03-09 08:56:33 +01:00
parent ad430880ce
commit 6a09c37893
1 changed files with 56 additions and 30 deletions

View File

@ -6,7 +6,7 @@ cmake_minimum_required (VERSION 3.8)
set (CMAKE_CXX_STANDARD 17)
set(sources
PixelAttributes.cpp
PixelAttributes.cpp
PixelAttributes.h
PlayerAttributes.cpp
PlayerAttributes.h
@ -51,54 +51,66 @@ set(sources
parg.c
util.h
)
if(WIN32)
set(sources ${sources} Minetestmapper.rc)
add_definitions(-D_USE_MATH_DEFINES)
list(APPEND sources Minetestmapper.rc)
endif(WIN32)
find_library(ZLIB_LIBRARY NAMES zlib z)
find_path(ZLIB_INCLUDE_DIR NAMES zlib.h)
add_executable(Minetestmapper ${sources})
# Platform dependant stuff
if(WIN32)
target_compile_definitions(Minetestmapper PRIVATE _USE_MATH_DEFINES)
elseif(UNIX)
endif()
# Required Libraries
###############################################################################
find_library(SQLITE3_LIBRARY sqlite3)
find_path(SQLITE3_INCLUDE_DIR sqlite3.h)
find_package(ZLIB REQUIRED)
find_library(LIBGD_LIBRARY NAMES gd libgd libgd_static)
find_path(LIBGD_INCLUDE_DIR NAMES gd.h)
if(WIN32)
find_path(SYSTEM_INCLUDE_DIR dirent.h)
include_directories(${SYSTEM_INCLUDE_DIR})
target_link_libraries(Minetestmapper ${LIBGD_LIBRARY} ZLIB::ZLIB ${SQLITE3_LIBRARY})
target_include_directories(Minetestmapper PRIVATE ${LIBGD_INCLUDE_DIR})
if(UNIX)
find_package(PNG REQUIRED)
find_package(Threads REQUIRED)
find_library(fs_LIBRARY NAMES stdc++fs)
if(fs_LIBRARY)
target_link_libraries(Minetestmapper fs_LIBRARY)
endif()
target_link_libraries(Minetestmapper PNG::PNG Threads::Threads ${CMAKE_DL_LIBS})
endif()
set(leveldb_lib "")
# Optional Libraries
###############################################################################
if(USE_LEVELDB)
set(leveldb_lib ${LEVELDB_LIBRARY})
target_link_libraries(Minetestmapper ${LEVELDB_LIBRARY})
if(WIN32)
# the leveld database driver requires PathFileExistsW which is in the Shlwapi library
set(leveldb_lib ${LEVELDB_LIBRARY} "Shlwapi.lib")
target_link_libraries(Minetestmapper "Shlwapi.lib")
endif(WIN32)
endif()
set(postgresql_lib "")
if(USE_POSTGRESQL)
set(postgresql_lib ${POSTGRESQL_LIBRARY})
target_link_libraries(Minetestmapper ${POSTGRESQL_LIBRARY})
if(WIN32)
# the libpq database driver requires htonl which is in the Ws2_32 library
set(postgresql_lib ${POSTGRESQL_LIBRARY} "Ws2_32.lib")
target_link_libraries(Minetestmapper "Ws2_32.lib")
endif(WIN32)
endif()
set(redis_lib "")
if(USE_REDIS)
set(redis_lib ${REDIS_LIBRARY})
target_link_libraries(Minetestmapper ${REDIS_LIBRARY})
endif()
#link_directories (../wingetopt)
# Fügen Sie der ausführbaren Datei für dieses Projekt eine Quelle hinzu.
add_executable (Minetestmapper ${sources})
set_target_properties(Minetestmapper PROPERTIES COMPILE_FLAGS -DBUILDER_STATIC_DEFINE)
target_link_libraries(Minetestmapper ${LIBGD_LIBRARY} ${ZLIB_LIBRARY} ${SQLITE3_LIBRARY} ${leveldb_lib} ${postgresql_lib} ${redis_lib})
# TODO: Fügen Sie bei Bedarf Tests und Installationsziele hinzu.
# Installation
###############################################################################
set (CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION ".")
@ -108,13 +120,27 @@ set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME})
set(CPACK_GENERATOR "ZIP")
include (CPack)
install (TARGETS Minetestmapper RUNTIME DESTINATION ".")
include(CPack)
install(TARGETS Minetestmapper RUNTIME DESTINATION ".")
if(WIN32)
#copy required dlls to install dir
install(DIRECTORY "${PROJECT_BINARY_DIR}/Minetestmapper/" DESTINATION "."
FILES_MATCHING PATTERN "*.dll" PATTERN "/" EXCLUDE)
#copy required dlls to install dir
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Release/
DESTINATION .
CONFIGURATIONS Release
FILES_MATCHING PATTERN "*.dll")
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Debug/
DESTINATION .
CONFIGURATIONS Debug
FILES_MATCHING PATTERN "*.dll")
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/
DESTINATION .
CONFIGURATIONS RelWithDebInfo
FILES_MATCHING PATTERN "*.dll")
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/MinSizeRel/
DESTINATION .
CONFIGURATIONS RelWithDebInfo
FILES_MATCHING PATTERN "*.dll")
endif(WIN32)
install(DIRECTORY "${PROJECT_SOURCE_DIR}/colors/" DESTINATION "colors/"