From 267989696ad447d1adecfc1fc24ff7dcf4fa9e57 Mon Sep 17 00:00:00 2001 From: Matthew Woehlke Date: Thu, 9 Nov 2017 13:39:04 -0500 Subject: [PATCH 1/2] Fix Windows library install location Don't install LIBRARIES on Windows to `bin`; they belong in `lib`. (This appears to have been done in a mistaken attempt to install the DLL's to `bin`, which do need to be there, but RUNTIME DESTINATION already takes care of this.) --- CMakeLists.txt | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a082038a0..6d1441fbd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -258,16 +258,10 @@ endif() ### ### General install settings ### -if(WIN32) - set(_library_dir bin) # .dll are in PATH, like executables -else() - set(_library_dir lib) -endif() - set(INCLUDE_INSTALL_ROOT_DIR ${CMAKE_INSTALL_PREFIX}/include) set(INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_ROOT_DIR}/yaml-cpp) -set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${_library_dir}${LIB_SUFFIX}") +set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") set(_INSTALL_DESTINATIONS RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin From dcda6c6bdf64974749c5ff3a5a75539a67545637 Mon Sep 17 00:00:00 2001 From: Matthew Woehlke Date: Thu, 9 Nov 2017 13:41:01 -0500 Subject: [PATCH 2/2] Avoid absolute install destinations Remove use of CMAKE_INSTALL_PREFIX when specifying install destinations. It is preferred that install destinations are specified as relative paths, not absolute paths. This is also needed to create relocatable installs, and thus should fix #526. --- CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d1441fbd..b15f77929 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -258,15 +258,15 @@ endif() ### ### General install settings ### -set(INCLUDE_INSTALL_ROOT_DIR ${CMAKE_INSTALL_PREFIX}/include) +set(INCLUDE_INSTALL_ROOT_DIR include) set(INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_ROOT_DIR}/yaml-cpp) -set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") +set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}") set(_INSTALL_DESTINATIONS - RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin + RUNTIME DESTINATION bin LIBRARY DESTINATION ${LIB_INSTALL_DIR} - ARCHIVE DESTINATION "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" + ARCHIVE DESTINATION ${LIB_INSTALL_DIR} ) @@ -320,12 +320,12 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" @ONLY) if(WIN32 AND NOT CYGWIN) - set(INSTALL_CMAKE_DIR ${CMAKE_INSTALL_PREFIX}/CMake) + set(INSTALL_CMAKE_DIR CMake) else() set(INSTALL_CMAKE_DIR ${LIB_INSTALL_DIR}/cmake/yaml-cpp) endif() -file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INCLUDE_INSTALL_ROOT_DIR}") +file(RELATIVE_PATH REL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_ROOT_DIR}") set(CONFIG_INCLUDE_DIRS "\${YAML_CPP_CMAKE_DIR}/${REL_INCLUDE_DIR}") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/yaml-cpp-config.cmake" @ONLY)