Skip to content

Commit 20cdd0f

Browse files
committed
CXX-1540 Use GNUInstallDirs to allow finer control over installation
1 parent c1bf4a0 commit 20cdd0f

File tree

7 files changed

+25
-20
lines changed

7 files changed

+25
-20
lines changed

CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
8080
set (CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "default install path" FORCE)
8181
endif()
8282

83+
include(GNUInstallDirs)
84+
8385
if(NOT CMAKE_BUILD_TYPE)
8486
message(STATUS "No build type selected, default is Release")
8587
set(CMAKE_BUILD_TYPE "Release")

benchmark/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,4 @@ set(BENCHMARK_LIBRARY
5454
add_executable(microbenchmarks ${BENCHMARK_LIBRARY})
5555
set(THREADS_PREFER_PTHREAD_FLAG ON)
5656
find_package(Threads REQUIRED)
57-
target_link_libraries(microbenchmarks mongocxx bsoncxx Threads::Threads)
57+
target_link_libraries(microbenchmarks mongocxx bsoncxx Threads::Threads)

benchmark/score_recorder.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414

1515
#include "score_recorder.hpp"
1616

17+
#include <algorithm>
18+
#include <stdexcept>
19+
1720
namespace benchmark {
1821

1922
score_recorder::score_recorder(double task_size)
@@ -58,4 +61,4 @@ const std::chrono::milliseconds& score_recorder::get_percentile(unsigned long n)
5861
double score_recorder::get_score() {
5962
return _task_size / (static_cast<double>(get_percentile(50).count()) * .001);
6063
}
61-
} // namespace benchmark
64+
} // namespace benchmark

src/bsoncxx/CMakeLists.txt

+7-7
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ endif()
7272
set(BSONCXX_VERSION_NO_EXTRA ${BSONCXX_VERSION_MAJOR}.${BSONCXX_VERSION_MINOR}.${BSONCXX_VERSION_PATCH})
7373
set(BSONCXX_VERSION ${BSONCXX_VERSION_NO_EXTRA}${BSONCXX_VERSION_EXTRA})
7474
set(BSONCXX_INLINE_NAMESPACE "v${BSONCXX_ABI_VERSION}")
75-
set(BSONCXX_HEADER_INSTALL_DIR "include/bsoncxx/${BSONCXX_INLINE_NAMESPACE}" CACHE INTERNAL "")
75+
set(BSONCXX_HEADER_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/bsoncxx/${BSONCXX_INLINE_NAMESPACE}" CACHE INTERNAL "")
7676

7777
set(LIBBSON_REQUIRED_VERSION 1.9.2)
7878
set(LIBBSON_REQUIRED_ABI_VERSION 1.0)
@@ -215,13 +215,13 @@ install(FILES
215215

216216
install(TARGETS
217217
bsoncxx
218-
RUNTIME DESTINATION bin COMPONENT runtime
219-
LIBRARY DESTINATION lib COMPONENT runtime
220-
ARCHIVE DESTINATION lib COMPONENT dev
218+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
219+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime
220+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dev
221221
)
222222

223223
set(PACKAGE_INCLUDE_INSTALL_DIRS ${BSONCXX_HEADER_INSTALL_DIR})
224-
set(PACKAGE_LIBRARY_INSTALL_DIRS lib)
224+
set(PACKAGE_LIBRARY_INSTALL_DIRS ${CMAKE_INSTALL_LIBDIR})
225225
set(PACKAGE_LIBRARIES bsoncxx)
226226

227227
include(CMakePackageConfigHelpers)
@@ -234,7 +234,7 @@ endif()
234234

235235
configure_package_config_file(
236236
cmake/${PKG}-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PKG}-config.cmake
237-
INSTALL_DESTINATION lib/cmake/${PKG}-${BSONCXX_VERSION}
237+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PKG}-${BSONCXX_VERSION}
238238
PATH_VARS PACKAGE_INCLUDE_INSTALL_DIRS PACKAGE_LIBRARY_INSTALL_DIRS
239239
)
240240

@@ -246,7 +246,7 @@ write_basic_package_version_file(
246246

247247
install(
248248
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PKG}-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PKG}-config-version.cmake
249-
DESTINATION lib/cmake/${PKG}-${BSONCXX_VERSION}
249+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PKG}-${BSONCXX_VERSION}
250250
)
251251

252252
add_subdirectory(test)

src/bsoncxx/config/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ if (BUILD_SHARED_LIBS)
4343

4444
install(FILES
4545
"${CMAKE_CURRENT_BINARY_DIR}/libbsoncxx.pc"
46-
DESTINATION lib/pkgconfig
46+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
4747
COMPONENT dev
4848
)
4949
else()
@@ -55,7 +55,7 @@ else()
5555

5656
install(FILES
5757
"${CMAKE_CURRENT_BINARY_DIR}/libbsoncxx-static.pc"
58-
DESTINATION lib/pkgconfig
58+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
5959
COMPONENT dev
6060
)
6161
endif()

src/mongocxx/CMakeLists.txt

+7-7
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ option(MONGOCXX_ENABLE_SLOW_TESTS "Run slow tests when invoking the the test tar
2828
set(MONGOCXX_VERSION_NO_EXTRA ${MONGOCXX_VERSION_MAJOR}.${MONGOCXX_VERSION_MINOR}.${MONGOCXX_VERSION_PATCH})
2929
set(MONGOCXX_VERSION ${MONGOCXX_VERSION_NO_EXTRA}${MONGOCXX_VERSION_EXTRA})
3030
set(MONGOCXX_INLINE_NAMESPACE "v${MONGOCXX_ABI_VERSION}")
31-
set(MONGOCXX_HEADER_INSTALL_DIR "include/mongocxx/${MONGOCXX_INLINE_NAMESPACE}" CACHE INTERNAL "")
31+
set(MONGOCXX_HEADER_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/mongocxx/${MONGOCXX_INLINE_NAMESPACE}" CACHE INTERNAL "")
3232

3333
set(LIBMONGOC_REQUIRED_VERSION 1.9.2)
3434
set(LIBMONGOC_REQUIRED_ABI_VERSION 1.0)
@@ -206,13 +206,13 @@ install(FILES
206206

207207
install(TARGETS
208208
mongocxx
209-
RUNTIME DESTINATION bin COMPONENT runtime
210-
LIBRARY DESTINATION lib COMPONENT runtime
211-
ARCHIVE DESTINATION lib COMPONENT dev
209+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
210+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime
211+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dev
212212
)
213213

214214
set(PACKAGE_INCLUDE_INSTALL_DIRS ${MONGOCXX_HEADER_INSTALL_DIR})
215-
set(PACKAGE_LIBRARY_INSTALL_DIRS lib)
215+
set(PACKAGE_LIBRARY_INSTALL_DIRS ${CMAKE_INSTALL_LIBDIR})
216216
set(PACKAGE_LIBRARIES mongocxx)
217217

218218
include(CMakePackageConfigHelpers)
@@ -225,7 +225,7 @@ endif()
225225

226226
configure_package_config_file(
227227
cmake/${PKG}-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PKG}-config.cmake
228-
INSTALL_DESTINATION lib/cmake/${PKG}-${MONGOCXX_VERSION}
228+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PKG}-${MONGOCXX_VERSION}
229229
PATH_VARS PACKAGE_INCLUDE_INSTALL_DIRS PACKAGE_LIBRARY_INSTALL_DIRS
230230
)
231231

@@ -237,7 +237,7 @@ write_basic_package_version_file(
237237

238238
install(
239239
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PKG}-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PKG}-config-version.cmake
240-
DESTINATION lib/cmake/${PKG}-${MONGOCXX_VERSION}
240+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PKG}-${MONGOCXX_VERSION}
241241
)
242242

243243
add_subdirectory(test)

src/mongocxx/config/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ if (BUILD_SHARED_LIBS)
4343

4444
install(FILES
4545
"${CMAKE_CURRENT_BINARY_DIR}/libmongocxx.pc"
46-
DESTINATION lib/pkgconfig
46+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
4747
COMPONENT dev
4848
)
4949
else()
@@ -55,7 +55,7 @@ else()
5555

5656
install(FILES
5757
"${CMAKE_CURRENT_BINARY_DIR}/libmongocxx-static.pc"
58-
DESTINATION lib/pkgconfig
58+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
5959
COMPONENT dev
6060
)
6161
endif()

0 commit comments

Comments
 (0)