project_options icon indicating copy to clipboard operation
project_options copied to clipboard

include missing GNUInstallDirs

Open ClausKlein opened this issue 3 years ago • 3 comments

add symlink to Index.cmake to enable use with CPM.cmake module too

This fix https://github.com/cpp-best-practices/project_options/issues/104 too

ClausKlein avatar Mar 17 '22 22:03 ClausKlein

NOTE: with ENABLE_INTERPROCEDURAL_OPTIMIZATION it fails on on CI macOS-11 llvm! see https://github.com/aminya/project_options/runs/5640388101?check_suite_focus=true

On my iMac with AppleClang 13.1.6 it builds without errors:

task: [clean] 
  rm -rf ./test/build ./test_install/build


task: [test_install] cmake ./test_install -B ./test_install/build -DCMAKE_BUILD_TYPE:STRING=Release -G "Ninja Multi-Config" -DCMAKE_PREFIX_PATH:STRING=/Users/clausklein/cmake/cmakelib/install;
-- vcpkg is already installed at /Users/clausklein/vcpkg.
-- Running vcpkg install
Detecting compiler hash for triplet x64-osx...
The following packages will be built and installed:
    eigen3[core]:x64-osx -> 3.4.0 -- /Users/clausklein/vcpkg/buildtrees/versioning_/versions/eigen3/0475ed327bda734cad0acd35978cde9379bc8619
    fmt[core]:x64-osx -> 8.1.1 -- /Users/clausklein/vcpkg/buildtrees/versioning_/versions/fmt/9748716da169977423d02b3c3f0de7b7f274e34e
  * vcpkg-cmake[core]:x64-osx -> 2022-01-19 -- /Users/clausklein/vcpkg/buildtrees/versioning_/versions/vcpkg-cmake/b7c050fe60f91dcedef6d87a3f87584151bf8aee
  * vcpkg-cmake-config[core]:x64-osx -> 2022-01-30 -- /Users/clausklein/vcpkg/buildtrees/versioning_/versions/vcpkg-cmake-config/fea8f92ffa5e14c7111fe526f8cc93ecd8f9dbf0
Additional packages (*) will be modified to complete this operation.
Restored 4 packages from /Users/clausklein/.cache/vcpkg/archives in 342.4 ms. Use --debug to see more details.
Starting package 1/4: vcpkg-cmake-config:x64-osx
Installing package vcpkg-cmake-config[core]:x64-osx...
Elapsed time for package vcpkg-cmake-config:x64-osx: 1.793 ms
Starting package 2/4: vcpkg-cmake:x64-osx
Installing package vcpkg-cmake[core]:x64-osx...
Elapsed time for package vcpkg-cmake:x64-osx: 2.448 ms
Starting package 3/4: eigen3:x64-osx
Installing package eigen3[core]:x64-osx...
Elapsed time for package eigen3:x64-osx: 256.1 ms
Starting package 4/4: fmt:x64-osx
Installing package fmt[core]:x64-osx...
Elapsed time for package fmt:x64-osx: 7.538 ms

Total elapsed time: 2.455 s

The package eigen3 provides CMake targets:

    find_package(Eigen3 CONFIG REQUIRED)
    target_link_libraries(main PRIVATE Eigen3::Eigen)

The package fmt provides CMake targets:

    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt)

    # Or use the header-only version
    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt-header-only)

-- Running vcpkg install - done
-- The CXX compiler identification is AppleClang 13.1.6.13160021
-- The C compiler identification is AppleClang 13.1.6.13160021
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- The default CMAKE_C_STANDARD used by external targets and tools is not set yet. Using the latest supported C standard that is 17
-- Downloading conan.cmake from https://github.com/conan-io/cmake-conan
-- Conan: Adding cci remote repository (https://center.conan.io) verify ssl (True)
-- Conan: Adding bincrafters remote repository (https://bincrafters.jfrog.io/artifactory/api/conan/public-conan) verify ssl (True)
-- Multi-configuration build: 'Debug;Release;RelWithDebInfo'!
-- Running Conan for build type 'Debug'
-- Conan: checking conan executable
-- Conan: Found program /usr/local/bin/conan
-- Conan: Version found Conan version 1.43.0
-- Conan executing: /usr/local/bin/conan install /Users/clausklein/cmake/cmakelib/test_install --build missing --env CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc --env CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ --settings build_type=Debug --settings compiler=apple-clang --settings compiler.version=13.1 --settings compiler.libcxx=libc++ --settings compiler.cppstd=20
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Debug
compiler=apple-clang
compiler.cppstd=20
compiler.libcxx=libc++
compiler.version=13.1
os=Macos
os_build=Macos
[options]
*:cxx_20=True
*:header_only=True
*:shared=True
[build_requires]
[env]
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
CONAN_CMAKE_GENERATOR=Ninja
CONAN_RUN_TESTS=True
CONAN_USERNAME=clausklein
CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
conanfile.txt: Installing package
Requirements
    docopt.cpp/0.6.3 from 'cci' - Cache
Packages
    docopt.cpp/0.6.3:327be534101cf95794d221297b3fee0c042051bb - Cache

Installing (downloading, building) binaries...
docopt.cpp/0.6.3: Already installed!
conanfile.txt: Generator txt created conanbuildinfo.txt
conanfile.txt: Generator cmake_find_package_multi created docopt-config-version.cmake
conanfile.txt: Generator cmake_find_package_multi created docoptTarget-debug.cmake
conanfile.txt: Generator cmake_find_package_multi created docoptTargets.cmake
conanfile.txt: Generator cmake_find_package_multi created docopt-config.cmake
conanfile.txt: Aggregating env generators
conanfile.txt: Generated conaninfo.txt
conanfile.txt: Generated graphinfo
-- Running Conan for build type 'Release'
-- Conan: checking conan executable
-- Conan: Found program /usr/local/bin/conan
-- Conan: Version found Conan version 1.43.0
-- Conan executing: /usr/local/bin/conan install /Users/clausklein/cmake/cmakelib/test_install --build missing --env CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc --env CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ --settings build_type=Release --settings compiler=apple-clang --settings compiler.version=13.1 --settings compiler.libcxx=libc++ --settings compiler.cppstd=20
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=apple-clang
compiler.cppstd=20
compiler.libcxx=libc++
compiler.version=13.1
os=Macos
os_build=Macos
[options]
*:cxx_20=True
*:header_only=True
*:shared=True
[build_requires]
[env]
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
CONAN_CMAKE_GENERATOR=Ninja
CONAN_RUN_TESTS=True
CONAN_USERNAME=clausklein
CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
conanfile.txt: Installing package
Requirements
    docopt.cpp/0.6.3 from 'cci' - Cache
Packages
    docopt.cpp/0.6.3:f765955ff23f6de8b1b8a81bc0639af6c2866059 - Cache

Installing (downloading, building) binaries...
docopt.cpp/0.6.3: Already installed!
conanfile.txt: Generator txt created conanbuildinfo.txt
conanfile.txt: Generator cmake_find_package_multi created docopt-config-version.cmake
conanfile.txt: Generator cmake_find_package_multi created docoptTarget-release.cmake
conanfile.txt: Generator cmake_find_package_multi created docoptTargets.cmake
conanfile.txt: Generator cmake_find_package_multi created docopt-config.cmake
conanfile.txt: Aggregating env generators
conanfile.txt: Generated conaninfo.txt
conanfile.txt: Generated graphinfo
-- Running Conan for build type 'RelWithDebInfo'
-- Conan: checking conan executable
-- Conan: Found program /usr/local/bin/conan
-- Conan: Version found Conan version 1.43.0
-- Conan executing: /usr/local/bin/conan install /Users/clausklein/cmake/cmakelib/test_install --build missing --env CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc --env CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ --settings build_type=RelWithDebInfo --settings compiler=apple-clang --settings compiler.version=13.1 --settings compiler.libcxx=libc++ --settings compiler.cppstd=20
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=RelWithDebInfo
compiler=apple-clang
compiler.cppstd=20
compiler.libcxx=libc++
compiler.version=13.1
os=Macos
os_build=Macos
[options]
*:cxx_20=True
*:header_only=True
*:shared=True
[build_requires]
[env]
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
CONAN_CMAKE_GENERATOR=Ninja
CONAN_RUN_TESTS=True
CONAN_USERNAME=clausklein
CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
conanfile.txt: Installing package
Requirements
    docopt.cpp/0.6.3 from 'cci' - Cache
Packages
    docopt.cpp/0.6.3:5daf637a62aba772e1702099bde4503471cf3546 - Cache

Installing (downloading, building) binaries...
docopt.cpp/0.6.3: Already installed!
conanfile.txt: Generator cmake_find_package_multi created docopt-config-version.cmake
conanfile.txt: Generator cmake_find_package_multi created docoptTarget-relwithdebinfo.cmake
conanfile.txt: Generator cmake_find_package_multi created docoptTargets.cmake
conanfile.txt: Generator cmake_find_package_multi created docopt-config.cmake
conanfile.txt: Generator txt created conanbuildinfo.txt
conanfile.txt: Aggregating env generators
conanfile.txt: Generated conaninfo.txt
conanfile.txt: Generated graphinfo
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/327be534101cf95794d221297b3fee0c042051bb/lib/libdocopt.dylib
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/327be534101cf95794d221297b3fee0c042051bb/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/327be534101cf95794d221297b3fee0c042051bb/lib/libdocopt.dylib
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/327be534101cf95794d221297b3fee0c042051bb/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/f765955ff23f6de8b1b8a81bc0639af6c2866059/lib/libdocopt.dylib
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/f765955ff23f6de8b1b8a81bc0639af6c2866059/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/f765955ff23f6de8b1b8a81bc0639af6c2866059/lib/libdocopt.dylib
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/f765955ff23f6de8b1b8a81bc0639af6c2866059/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/5daf637a62aba772e1702099bde4503471cf3546/lib/libdocopt.dylib
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/5daf637a62aba772e1702099bde4503471cf3546/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/5daf637a62aba772e1702099bde4503471cf3546/lib/libdocopt.dylib
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/5daf637a62aba772e1702099bde4503471cf3546/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/327be534101cf95794d221297b3fee0c042051bb/lib/libdocopt.dylib
-- Skipping already existing target: CONAN_LIB::docopt_docopt_DEBUG
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/327be534101cf95794d221297b3fee0c042051bb/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/327be534101cf95794d221297b3fee0c042051bb/lib/libdocopt.dylib
-- Skipping already existing target: CONAN_LIB::docopt_docopt_docoptDEBUG
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/327be534101cf95794d221297b3fee0c042051bb/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/f765955ff23f6de8b1b8a81bc0639af6c2866059/lib/libdocopt.dylib
-- Skipping already existing target: CONAN_LIB::docopt_docopt_RELEASE
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/f765955ff23f6de8b1b8a81bc0639af6c2866059/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/f765955ff23f6de8b1b8a81bc0639af6c2866059/lib/libdocopt.dylib
-- Skipping already existing target: CONAN_LIB::docopt_docopt_docoptRELEASE
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/f765955ff23f6de8b1b8a81bc0639af6c2866059/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/5daf637a62aba772e1702099bde4503471cf3546/lib/libdocopt.dylib
-- Skipping already existing target: CONAN_LIB::docopt_docopt_RELWITHDEBINFO
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/5daf637a62aba772e1702099bde4503471cf3546/lib/libdocopt.dylib
-- Library docopt found /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/5daf637a62aba772e1702099bde4503471cf3546/lib/libdocopt.dylib
-- Skipping already existing target: CONAN_LIB::docopt_docopt_docoptRELWITHDEBINFO
-- Found: /Users/clausklein/.conan/data/docopt.cpp/0.6.3/_/_/package/5daf637a62aba772e1702099bde4503471cf3546/lib/libdocopt.dylib
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/clausklein/cmake/cmakelib/test_install/build
task: [test_install] cmake --build ./test_install/build --config Release
[2/2] Linking CXX executable Release/another_main
task: [test_install] cd ./test_install/build && ctest -C Release --verbose
UpdateCTestConfiguration  from :/Users/clausklein/cmake/cmakelib/test_install/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :/Users/clausklein/cmake/cmakelib/test_install/build/DartConfiguration.tcl
Test project /Users/clausklein/cmake/cmakelib/test_install/build
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
    Start 1: another_main

1: Test command: /Users/clausklein/cmake/cmakelib/test_install/build/Release/another_main
1: Test timeout computed to be: 10000000
1: Hello from fmt!       0
1: 0.111111
1: 0.222222
1: 0.333333
1: 0.444444
1: 0.555556
1: 0.666667
1: 0.777778
1: 0.888889
1:        1Hello from fmt!       0
1: 0.111111
1: 0.222222
1: 0.333333
1: 0.444444
1: 0.555556
1: 0.666667
1: 0.777778
1: 0.888889
1:        1
1/1 Test #1: another_main .....................   Passed    0.16 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.16 sec
bash-3.2$ history 2
  725  task --taskfile Taskfile.yml test_install
  726  history 2
bash-3.2$ 

ClausKlein avatar Mar 20 '22 20:03 ClausKlein

OK

ClausKlein avatar May 15 '22 21:05 ClausKlein

Please keep it open so it is not lost.

aminya avatar May 16 '22 03:05 aminya