From 1cb338ceb2efc25a91983891a4c6fc2c1f82aa17 Mon Sep 17 00:00:00 2001 From: Aous Naman Date: Tue, 9 Jan 2024 11:15:19 +1100 Subject: [PATCH] Improve CMakeLists.txt to better support PKG-Config, and a version bump. --- CMakeLists.txt | 13 +++++++------ src/apps/CMakeLists.txt | 16 +++++++++------- src/core/CMakeLists.txt | 17 ++++++++++------- src/core/common/ojph_version.h | 2 +- 4 files changed, 27 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 94afd3fe..341502fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,11 +84,6 @@ endif() # Install ################################################################################################ -set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include") -set(PKG_CONFIG_LIBDIR "\${prefix}/lib") -set(PKG_CONFIG_LIBS "-L\${libdir} -lopenjph") -set(PKG_CONFIG_CFLAGS "-I\${includedir}") - include(GNUInstallDirs) install(TARGETS openjph ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -96,16 +91,22 @@ install(TARGETS openjph LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(DIRECTORY src/core/common/ - DESTINATION include/openjph + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/openjph FILES_MATCHING PATTERN "*.h") install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +set(PKG_CONFIG_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") +set(PKG_CONFIG_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}") +set(PKG_CONFIG_LIBS "-L\${libdir} -lopenjph") +set(PKG_CONFIG_CFLAGS "-I\${includedir}") + configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/pkg-config.pc.cmake" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc" + @ONLY ) ################################################################################################ diff --git a/src/apps/CMakeLists.txt b/src/apps/CMakeLists.txt index 1af20d7e..a4a04df1 100644 --- a/src/apps/CMakeLists.txt +++ b/src/apps/CMakeLists.txt @@ -34,13 +34,15 @@ if(OJPH_BUILD_EXECUTABLES) endif() ############################################################ - ## Change folders - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../bin) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../bin) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../lib) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../bin) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../bin) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../lib) + ## change folders but only for Microsoft + if(MSVC) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../bin) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../bin) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../lib) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../bin) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../bin) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../lib) + endif() ## Build executables add_subdirectory(ojph_expand) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index e43b6977..1f41da8c 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -1,10 +1,13 @@ -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../bin) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../bin) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../lib) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../bin) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../bin) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../lib) +## change folders but only for Microsoft +if (MSVC) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../bin) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../bin) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../lib) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../bin) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../bin) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../lib) +endif() include_directories(common) @@ -89,7 +92,7 @@ else() set_source_files_properties(transform/ojph_transform_avx2.cpp PROPERTIES COMPILE_FLAGS -mavx2) endif() -if (WIN32) +if (MSVC) set(OJPH_LIB_NAME_STRING "openjph.${OPENJPH_VERSION_MAJOR}.${OPENJPH_VERSION_MINOR}") set_target_properties(openjph PROPERTIES diff --git a/src/core/common/ojph_version.h b/src/core/common/ojph_version.h index df3d3c23..e7fcc900 100644 --- a/src/core/common/ojph_version.h +++ b/src/core/common/ojph_version.h @@ -35,4 +35,4 @@ #define OPENJPH_VERSION_MAJOR 0 #define OPENJPH_VERSION_MINOR 10 -#define OPENJPH_VERSION_PATCH 2 +#define OPENJPH_VERSION_PATCH 3