diff options
author | Alan Antonuk <alan.antonuk@gmail.com> | 2021-04-19 07:02:20 +0000 |
---|---|---|
committer | Alan Antonuk <alan.antonuk@gmail.com> | 2021-04-19 00:16:12 -0700 |
commit | 7605238ef80edb586d80d30ad2f5c1fcdd6de6d3 (patch) | |
tree | 9846b27499f67d3a9c7ada5a5e365396a8adf6ec | |
parent | 45fbf2577decfeec6020e4897887dd213588332b (diff) | |
download | rabbitmq-c-7605238ef80edb586d80d30ad2f5c1fcdd6de6d3.tar.gz |
cmake: change BUILD_EXAMPLES to default to OFF
This makes the project easier to use as an add_subdirectory in a larger
project without needing to explicitly disable this feature.
As a minor side-effect: BUILD_EXAMPLES now requires
BUILD_SHARED_LIBS=ON. While there isn't a technical limitation, it makes
the CMake code easier to reason about, and is believed this will not
impact a lot of users. If this ends up being a problem, it can be
reconsidered.
-rw-r--r-- | .github/workflows/ci.yml | 2 | ||||
-rw-r--r-- | CMakeLists.txt | 10 | ||||
-rwxr-xr-x | travis.sh | 12 |
3 files changed, 13 insertions, 11 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9c3ffde..61a021c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,6 +63,6 @@ jobs: shell: bash run: | cmake -E make_directory build/ - cmake -S . -B build/ -DCMAKE_C_FLAGS=" /W4" + cmake -S . -B build/ -DBUILD_EXAMPLES=ON -DCMAKE_C_FLAGS=" /W4" cmake --build build/ --config Debug --target INSTALL ctest -V ./build/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4658638..a498724 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,7 +234,7 @@ endif() option(BUILD_SHARED_LIBS "Build rabbitmq-c as a shared library" ON) option(BUILD_STATIC_LIBS "Build rabbitmq-c as a static library" ON) -option(BUILD_EXAMPLES "Build Examples" ON) +option(BUILD_EXAMPLES "Build Examples" OFF) option(BUILD_TOOLS "Build Tools (requires POPT Library)" ${POPT_FOUND}) option(BUILD_TOOLS_DOCS "Build man pages for Tools (requires xmlto)" ${DO_DOCS}) option(BUILD_API_DOCS "Build Doxygen API docs" ${DOXYGEN_FOUND}) @@ -248,9 +248,12 @@ set(targets_export_name rabbitmq-targets) add_subdirectory(librabbitmq) -if (BUILD_EXAMPLES) +if(BUILD_EXAMPLES) + if(NOT BUILD_SHARED_LIBS) + message(FATAL_ERROR "Examples require -DBUILD_SHARED_LIBS=ON") + endif() add_subdirectory(examples) -endif () +endif() if (BUILD_TOOLS) if (POPT_FOUND) @@ -302,7 +305,6 @@ set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") configure_file(cmake/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/librabbitmq/config.h) configure_file(librabbitmq.pc.in ${CMAKE_CURRENT_BINARY_DIR}/librabbitmq.pc @ONLY) - include(CMakePackageConfigHelpers) set(RMQ_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/rabbitmq-c) set(project_config "${CMAKE_CURRENT_BINARY_DIR}/rabbitmq-c-config.cmake") @@ -2,14 +2,14 @@ build_cmake() { mkdir $PWD/_build && cd $PWD/_build - cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/../_install -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Wno-implicit-fallthrough -Werror" + cmake .. -DBUILD_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=$PWD/../_install -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Wno-implicit-fallthrough -Werror" cmake --build . --target install ctest -V . } build_macos() { mkdir $PWD/_build && cd $PWD/_build - cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/../_install -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror" \ + cmake .. -DBUILD_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=$PWD/../_install -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror" \ -DOPENSSL_ROOT_DIR="/usr/local/opt/openssl@1.1" cmake --build . --target install ctest -V . @@ -24,7 +24,7 @@ build_format() { build_coverage() { mkdir $PWD/_build && cd $PWD/_build - cmake .. -DCMAKE_BUILD_TYPE=Coverage -DCMAKE_INSTALL_PREFIX=$PWD/../_install \ + cmake .. -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Coverage -DCMAKE_INSTALL_PREFIX=$PWD/../_install \ -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror -fprofile-arcs -ftest-coverage" cmake --build . --target install ctest -V . @@ -35,7 +35,7 @@ build_coverage() { build_asan() { mkdir $PWD/_build && cd $PWD/_build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$PWD/../_install \ + cmake .. -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$PWD/../_install \ -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror -fsanitize=address,undefined -O1" cmake --build . --target install ctest -V . @@ -43,7 +43,7 @@ build_asan() { build_tsan() { mkdir $PWD/_build && cd $PWD/_build - cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$PWD/../_install \ + cmake .. -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$PWD/../_install \ -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror -fsanitize=thread,undefined -O1" cmake --build . --target install ctest -V . @@ -52,7 +52,7 @@ build_tsan() { build_scan-build() { sudo apt-get install -y clang-tools mkdir $PWD/_build && cd $PWD/_build - scan-build cmake .. -DCMAKE_BUILD_TYPE=Debug \ + scan-build cmake .. -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_INSTALL_PREFIX=$PWD/../_install \ -DCMAKE_C_FLAGS="-Wall -Wextra -Wstrict-prototypes -Wno-unused-function -Werror" |