Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cmake] Use GNU install dirs variables instead of hardcoded value #1892

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -207,18 +207,6 @@ endif()
# --------------------------------------------------------
# offer the user the choice of overriding the installation directories
# --------------------------------------------------------
set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries")
set(INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables")
set(INSTALL_INCLUDE_DIR include CACHE PATH
"Installation directory for header files")
if(WIN32 AND NOT CYGWIN)
set(DEF_INSTALL_CMAKE_DIR CMake)
else()
set(DEF_INSTALL_CMAKE_DIR lib/CMake/eCAL)
endif()
set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH
"Installation directory for CMake files")

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bit strange that we still have those when we do provide all these eCAL_install directories.

include(GNUInstallDirs)
set(eCAL_install_app_dir ${CMAKE_INSTALL_BINDIR})
set(eCAL_install_archive_dir ${CMAKE_INSTALL_LIBDIR})
Expand Down
5 changes: 4 additions & 1 deletion app/app_pb/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,10 @@ endif()

add_library(eCAL::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

protobuf_target_cpp(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/src INSTALL_FOLDER include ${ProtoFiles})
protobuf_target_cpp(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/src
INSTALL_FOLDER "${eCAL_install_include_dir}"
${ProtoFiles}
)

target_compile_options(${PROJECT_NAME}
PRIVATE
Expand Down
4 changes: 2 additions & 2 deletions app/apps/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ target_include_directories(${PROJECT_NAME} INTERFACE

#install(
# DIRECTORY "include/"
# DESTINATION "${INSTALL_INCLUDE_DIR}"
# DESTINATION "${eCAL_install_include_dir}"
# COMPONENT sdk
# FILES_MATCHING PATTERN "*.h"
#)

#set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER contrib)
#set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER contrib)
2 changes: 1 addition & 1 deletion app/mon/mon_plugin_lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14)

ecal_install_library(${PROJECT_NAME})
install(DIRECTORY
"include/" DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT sdk
"include/" DESTINATION "${eCAL_install_include_dir}" COMPONENT sdk
FILES_MATCHING PATTERN "*.h")

set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER app/mon)
2 changes: 1 addition & 1 deletion app/rec/rec_addon_core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_14)

ecal_install_library(${PROJECT_NAME})
install(DIRECTORY
"include/" DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT sdk
"include/" DESTINATION "${eCAL_install_include_dir}" COMPONENT sdk
FILES_MATCHING PATTERN "*.h")

source_group(TREE "${CMAKE_CURRENT_LIST_DIR}"
Expand Down
2 changes: 1 addition & 1 deletion cmake/helper_functions/ecal_install_functions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ endfunction()


# Samples are sample applications that demonstrate eCAL capability
# They will be installed to "${INSTALL_BIN_DIR}/ecal_samples"
# They will be installed to `${prefix}/share/ecal/samples`
function(ecal_install_sample TARGET_NAME)
install(TARGETS ${TARGET_NAME}
RUNTIME DESTINATION "${eCAL_install_samples_dir}" COMPONENT samples
Expand Down
2 changes: 1 addition & 1 deletion contrib/ecalhdf5/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ source_group(TREE "${CMAKE_CURRENT_LIST_DIR}"

ecal_install_library(${PROJECT_NAME})
install(DIRECTORY
"include/" DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT sdk
"include/" DESTINATION "${eCAL_install_include_dir}" COMPONENT sdk
FILES_MATCHING PATTERN "*.h")

set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER contrib)
5 changes: 4 additions & 1 deletion contrib/ecaltime/ecaltime_pb/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,10 @@ endif()

add_library(eCAL::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

protobuf_target_cpp(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/src INSTALL_FOLDER include ${ProtoFiles})
protobuf_target_cpp(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/src
INSTALL_FOLDER "${eCAL_install_include_dir}"
${ProtoFiles}
)

target_compile_options(${PROJECT_NAME}
PRIVATE
Expand Down
2 changes: 1 addition & 1 deletion contrib/measurement/base/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ target_include_directories(${PROJECT_NAME} INTERFACE
ecal_install_library(${PROJECT_NAME})

install(DIRECTORY
"include/" DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT sdk
"include/" DESTINATION "${eCAL_install_include_dir}" COMPONENT sdk
)


2 changes: 1 addition & 1 deletion contrib/measurement/hdf5/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ target_link_libraries(${PROJECT_NAME}
ecal_install_library(${PROJECT_NAME})

install(DIRECTORY
"include/" DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT sdk
"include/" DESTINATION "${eCAL_install_include_dir}" COMPONENT sdk
)

set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER contrib)
6 changes: 3 additions & 3 deletions ecal/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -764,12 +764,12 @@ ecal_install_ecal_shared_library(${PROJECT_NAME}_c)
ecal_install_ecal_shared_library(${PROJECT_NAME})

install(DIRECTORY
"include/" DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT sdk
"include/" DESTINATION "${eCAL_install_include_dir}" COMPONENT sdk
FILES_MATCHING PATTERN "*.h")

# install generated ecal_defs.h file
install(DIRECTORY
"${CMAKE_CURRENT_BINARY_DIR}/include/" DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT sdk
"${CMAKE_CURRENT_BINARY_DIR}/include/" DESTINATION "${eCAL_install_include_dir}" COMPONENT sdk
FILES_MATCHING PATTERN "*.h")

if(NOT ${CMAKE_VERSION} VERSION_LESS "3.8.0")
Expand All @@ -793,4 +793,4 @@ if(UNIX)
ecal_install_app(${PROJECT_NAME_PROCESS_STUB})

set_property(TARGET ${PROJECT_NAME_PROCESS_STUB} PROPERTY FOLDER core)
endif(UNIX)
endif(UNIX)
5 changes: 4 additions & 1 deletion ecal/core_pb/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,10 @@ endif()

add_library(eCAL::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

protobuf_target_cpp(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/src INSTALL_FOLDER include ${ProtoFiles})
protobuf_target_cpp(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/src
INSTALL_FOLDER "${eCAL_install_include_dir}"
${ProtoFiles}
)

target_compile_options(${PROJECT_NAME}
PRIVATE
Expand Down
6 changes: 3 additions & 3 deletions lang/csharp/Continental.eCAL.Core.Test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ set_property(TARGET ${PROJECT_NAME} PROPERTY
install(TARGETS ${PROJECT_NAME}
# IMPORTANT: Add the library to the "export-set"
EXPORT eCALTargets
RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT runtime
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT sdk
PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/ecal" COMPONENT sdk
RUNTIME DESTINATION "${eCAL_install_bin_dir}" COMPONENT runtime
LIBRARY DESTINATION "${eCAL_install_lib_dir}" COMPONENT sdk
PUBLIC_HEADER DESTINATION "${eCAL_install_include_dir}/ecal" COMPONENT sdk
)

set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER tests/csharp)
6 changes: 3 additions & 3 deletions lang/csharp/Continental.eCAL.Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON)
install(TARGETS ${PROJECT_NAME}
# IMPORTANT: Add the library to the "export-set"
EXPORT eCALTargets
RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT runtime
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT sdk
PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/ecal" COMPONENT sdk
RUNTIME DESTINATION "${eCAL_install_bin_dir}" COMPONENT runtime
LIBRARY DESTINATION "${eCAL_install_lib_dir}" COMPONENT sdk
PUBLIC_HEADER DESTINATION "${eCAL_install_include_dir}/ecal" COMPONENT sdk
)

set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER lang/csharp)
6 changes: 3 additions & 3 deletions lang/csharp/Continental.eCAL.Protobuf.Test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ set_property(TARGET ${PROJECT_NAME} PROPERTY
install(TARGETS ${PROJECT_NAME}
# IMPORTANT: Add the library to the "export-set"
EXPORT eCALTargets
RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT runtime
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT sdk
PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/ecal" COMPONENT sdk
RUNTIME DESTINATION "${eCAL_install_bin_dir}" COMPONENT runtime
LIBRARY DESTINATION "${eCAL_install_lib_dir}" COMPONENT sdk
PUBLIC_HEADER DESTINATION "${eCAL_install_include_dir}/ecal" COMPONENT sdk
)

set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER tests/csharp)
6 changes: 3 additions & 3 deletions lang/csharp/Continental.eCAL.Protobuf/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ set_property(TARGET ${PROJECT_NAME} PROPERTY
install(TARGETS ${PROJECT_NAME}
# IMPORTANT: Add the library to the "export-set"
EXPORT eCALTargets
RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT runtime
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT sdk
PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/ecal" COMPONENT sdk
RUNTIME DESTINATION "${eCAL_install_bin_dir}" COMPONENT runtime
LIBRARY DESTINATION "${eCAL_install_lib_dir}" COMPONENT sdk
PUBLIC_HEADER DESTINATION "${eCAL_install_include_dir}/ecal" COMPONENT sdk
)

set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER lang/csharp)
5 changes: 3 additions & 2 deletions thirdparty/asio/build-asio.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
include_guard(GLOBAL)

include(GNUInstallDirs)
add_library(asio INTERFACE EXCLUDE_FROM_ALL)
target_include_directories(asio INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/asio/asio/include>
Expand All @@ -20,7 +21,7 @@ install(
install(
EXPORT asioTargets
FILE asioTargets.cmake
DESTINATION lib/CMake
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake"
NAMESPACE asio::
COMPONENT asio_dev
)
)
3 changes: 2 additions & 1 deletion thirdparty/cmakefunctions/cmake_functions/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ include(cmake_functions.cmake)

project(CMakeFunctions VERSION 0.4.1)

include(GNUInstallDirs)
if (MSVC)
# Variable definitions
set(cmake_functions_install_cmake_dir cmake)
else (MSVC)
set(cmake_functions_install_cmake_dir lib/cmake/${PROJECT_NAME}-${PROJECT_VERSION})
set(cmake_functions_install_cmake_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}-${PROJECT_VERSION}")
endif (MSVC)
set(cmake_functions_config ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake)
set(cmake_functions_config_version ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake)
Expand Down
5 changes: 3 additions & 2 deletions thirdparty/hdf5/build-hdf5.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ include_guard(GLOBAL)
set(HDF5_BUILD_EXAMPLES OFF CACHE BOOL "Do not build HDF5 Library Examples" FORCE)
set(HDF5_BUILD_CPP_LIB OFF CACHE BOOL "Do not build C++ lib" FORCE)
set(HDF5_BUILD_HL_LIB OFF CACHE BOOL "Do not build hdf5-hl" FORCE)

set(HDF5_USE_GNU_DIRS ON CACHE BOOL "Use GNU install dirs" FORCE)

# TODO: Let HDF5 use its own targets.
# Adding the HDF5 targets to the eCALCoreTargets is a hack that we have had
# before and so I am adding it again, to not break compatibility in eCAL 5.8
Expand Down Expand Up @@ -74,4 +75,4 @@ include_guard(GLOBAL)
unset(CMAKE_RUNTIME_OUTPUT_DIRECTORY CACHE)
endif()

set(BUILD_SHARED_LIBS ${OLD_BUILD_SHARED_LIBS} CACHE BOOL "Build hdf5 shared" FORCE)
set(BUILD_SHARED_LIBS ${OLD_BUILD_SHARED_LIBS} CACHE BOOL "Build hdf5 shared" FORCE)
Loading