From fdce587c74228f80b214121515baa2540d836f53 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 24 Aug 2021 13:07:31 +0200 Subject: [PATCH] build: update to modern CMake, use pkg-config for zlib and libpng Starting with CMake 3.7, we can avoid dealing with individual variables for include dirs, libraries, ... for dependencies found using pkg-config, and instead just reference them using an imported target. --- CMakeLists.txt | 8 ++++---- src/CMakeLists.txt | 12 ++++-------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 362fa58..70385e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,9 @@ -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 3.7) project(MINEDMAP CXX) +find_package(PkgConfig REQUIRED) -find_package(PNG REQUIRED) -find_package(ZLIB REQUIRED) - +pkg_check_modules(ZLIB REQUIRED IMPORTED_TARGET zlib) +pkg_check_modules(PNG REQUIRED IMPORTED_TARGET libpng16) add_subdirectory(src) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1eea2b3..0e4fd48 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,4 @@ -include_directories(${ZLIB_INCLUDE_DIRS} ${PNG_INCLUDE_DIRS}) -add_definitions(${PNG_DEFINITIONS}) +add_compile_options(-std=c++11 -Wall) add_executable(MinedMap MinedMap.cpp @@ -16,16 +15,14 @@ add_executable(MinedMap World/Region.cpp World/Section.cpp ) -set_target_properties(MinedMap PROPERTIES COMPILE_FLAGS "-std=c++11 -Wall") -target_link_libraries(MinedMap ${ZLIB_LIBRARIES} ${PNG_LIBRARIES}) +target_link_libraries(MinedMap PkgConfig::ZLIB PkgConfig::PNG) add_executable(nbtdump nbtdump.cpp GZip.cpp NBT/Tag.cpp ) -set_target_properties(nbtdump PROPERTIES COMPILE_FLAGS "-std=c++11 -Wall") -target_link_libraries(nbtdump ${ZLIB_LIBRARIES}) +target_link_libraries(nbtdump PkgConfig::ZLIB) add_executable(regiondump regiondump.cpp @@ -34,7 +31,6 @@ add_executable(regiondump World/ChunkData.cpp World/Region.cpp ) -set_target_properties(regiondump PROPERTIES COMPILE_FLAGS "-std=c++11 -Wall") -target_link_libraries(regiondump ${ZLIB_LIBRARIES}) +target_link_libraries(regiondump PkgConfig::ZLIB) install(TARGETS MinedMap RUNTIME DESTINATION bin)