From 57db73d6e26df16b42b336095b6dc0df4fc698bb Mon Sep 17 00:00:00 2001 From: Atri Bhattacharya Date: Wed, 22 Jul 2020 15:39:03 +0200 Subject: [PATCH 1/3] Use PROJECT_VERSION consistently. * Set VERSION when declaring project; this sets up PROJECT_VERSION and PROJECT_VERSION_{MAJOR,MINOR,PATCH} variables. * Use the PROJECT_VERSION variable consistently across CMakeLists.txt and pkgconfig file instead of the VERSION string used previously. --- CMakeLists.txt | 4 ++-- src/qcdloop.pc.in | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 392b90b..7ab68ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,12 +14,12 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) "MinSizeRel" "RelWithDebInfo") endif() -project(qcdloop) +project(qcdloop VERSION 2.0.5) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -set(VERSION "\"2.0.5\"") +set(VERSION "\"${PROJECT_VERSION}\"") set(CMAKE_CXX_FLAGS "-Wall -Wextra -march=nocona -mtune=haswell -fvisibility-inlines-hidden -fmessage-length=0 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -fext-numeric-literals") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address -fPIC ${CMAKE_CXX_FLAGS}" CACHE STRING "debug compile flags" FORCE) set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-fsanitize=address" CACHE STRING "debug linker flags" FORCE) diff --git a/src/qcdloop.pc.in b/src/qcdloop.pc.in index 99f5de5..aee26c3 100644 --- a/src/qcdloop.pc.in +++ b/src/qcdloop.pc.in @@ -5,6 +5,6 @@ libdir=@libdir@ Name: nnpdf Description: The qcdloop library -Version: @VERSION@ +Version: @PROJECT_VERSION@ Cflags: -I@includedir@ -std=c++11 Libs: -L@libdir@ -lqcdloop From be0e69ff57d37039cd8b09cc40c48843ace6ec95 Mon Sep 17 00:00:00 2001 From: Atri Bhattacharya Date: Wed, 22 Jul 2020 15:58:34 +0200 Subject: [PATCH 2/3] Set libdir correctly for 64-bit systems. --- CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ab68ed..02f2433 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,10 +23,12 @@ set(VERSION "\"${PROJECT_VERSION}\"") set(CMAKE_CXX_FLAGS "-Wall -Wextra -march=nocona -mtune=haswell -fvisibility-inlines-hidden -fmessage-length=0 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -fext-numeric-literals") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address -fPIC ${CMAKE_CXX_FLAGS}" CACHE STRING "debug compile flags" FORCE) set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-fsanitize=address" CACHE STRING "debug linker flags" FORCE) + +include(GNUInstallDirs) set(prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix "${prefix}") set(includedir "${prefix}/include") -set(libdir "${prefix}/lib") +set(libdir ${CMAKE_INSTALL_FULL_LIBDIR}) configure_file( "${PROJECT_SOURCE_DIR}/src/qcdloop/config.h.in" @@ -89,9 +91,9 @@ target_link_libraries(qcdloop) install(FILES ${CMAKE_BINARY_DIR}/src/qcdloop-config DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) -install(FILES ${PROJECT_SOURCE_DIR}/src/qcdloop.pc DESTINATION lib/pkgconfig) +install(FILES ${PROJECT_SOURCE_DIR}/src/qcdloop.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(DIRECTORY src/qcdloop DESTINATION include) -install(TARGETS qcdloop DESTINATION lib) +install(TARGETS qcdloop DESTINATION ${CMAKE_INSTALL_LIBDIR}) # enable disable fortran/wrapper (to avoid name conflicts with ql1.x) option(ENABLE_FORTRAN_WRAPPER "Enable fortran wrapper" ON) From d4605d34448f2807565913c8a30be143b7cde9cd Mon Sep 17 00:00:00 2001 From: Atri Bhattacharya Date: Wed, 22 Jul 2020 16:01:14 +0200 Subject: [PATCH 3/3] Set so-versioning scheme on shared library. Setting a library version and soversion on shared libraries is recommended to make multiple versions of libraries differing in their soversions parallel installable. Set the full library version to PROJECT_VERSION and the soversion to PROJECT_VERSION_MAJOR. --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 02f2433..014e2d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,6 +88,8 @@ add_library(qcdloop SHARED src/box.cc ) target_link_libraries(qcdloop) +set_target_properties(qcdloop PROPERTIES VERSION ${PROJECT_VERSION}) +set_target_properties(qcdloop PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR}) install(FILES ${CMAKE_BINARY_DIR}/src/qcdloop-config DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)