From 8376a554cc47fd419396b3f41ebd652028d02a96 Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Sat, 19 Oct 2019 18:33:29 -0700 Subject: [PATCH] Setup conan and get boost dependency through it --- .circleci/config.yml | 99 ++++++++++++-------------------- .travisci/build_and_test.sh | 17 +++--- .travisci/install.sh | 2 + CMakeLists.txt | 14 +++++ CMakeSettings.json | 8 +-- ChangeLog.txt | 6 ++ README.md | 36 ++++-------- appveyor.yml | 25 +++++--- cmake-utils/utils.cmake | 20 +------ conanfile.py | 17 ++++++ run-clang-tidy.sh | 1 + src/cryfs-unmount/CMakeLists.txt | 1 + src/cryfs/CMakeLists.txt | 2 +- src/fspp/fuse/CMakeLists.txt | 1 + src/fspp/fuse/params.h | 8 --- 15 files changed, 121 insertions(+), 136 deletions(-) create mode 100644 conanfile.py diff --git a/.circleci/config.yml b/.circleci/config.yml index 1184d9f1..42a63179 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -55,7 +55,14 @@ references: sudo chmod o-w /etc/apt/sources.list.d/clang.list DEBIAN_FRONTEND=noninteractive sudo apt-get update -qq - DEBIAN_FRONTEND=noninteractive sudo apt-get install -y git ccache $APT_COMPILER_PACKAGE cmake make libcurl4-openssl-dev libssl-dev libfuse-dev python + DEBIAN_FRONTEND=noninteractive sudo apt-get install -y git ccache $APT_COMPILER_PACKAGE cmake make libcurl4-openssl-dev libssl-dev libfuse-dev + + # install conan + pyenv global 3.7.0 + python3 -m pip install -U pip + python3 -m pip install conan + source ~/.profile + # Use /dev/urandom when /dev/random is accessed to use less entropy sudo cp -a /dev/urandom /dev/random @@ -67,14 +74,25 @@ references: sudo ln -s /usr/bin/run-clang-tidy-8.py /usr/bin/run-clang-tidy.py fi + # Setup build cache + sudo mkdir -p /build_cache/ccache + sudo mkdir -p /build_cache/conan + sudo chown -R circleci:circleci /build_cache + + # Setup conan cache + echo 'export CONAN_USER_HOME=/build_cache/conan' >> $BASH_ENV + if [[ "${CXX}" == *"g++"* ]]; then + # Conan uses old gcc ABI by default but we can only build with the cxx11 ABI. + conan profile new default --detect + conan profile update settings.compiler.libcxx=libstdc++11 default + fi + # Setup ccache sudo ln -s /usr/bin/ccache /usr/local/bin/$CC sudo ln -s /usr/bin/ccache /usr/local/bin/$CXX - sudo mkdir /ccache_data - sudo chown circleci:circleci /ccache_data echo 'export CCACHE_COMPILERCHECK=content' >> $BASH_ENV echo 'export CCACHE_COMPRESS=1' >> $BASH_ENV - echo 'export CCACHE_DIR=/ccache_data' >> $BASH_ENV + echo 'export CCACHE_DIR=/build_cache/ccache' >> $BASH_ENV echo 'export CCACHE_SLOPPINESS=include_file_mtime' >> $BASH_ENV sudo mkdir -p /tmp/aptcache @@ -88,60 +106,20 @@ references: cmake --version /usr/local/bin/$CC --version /usr/local/bin/$CXX --version - upgrade_boost_pre: &upgrade_boost_pre - restore_cache: - keys: - # Find the most recent cache from any branch - - v5_upgrade_boost_cache_{{ checksum "/tmp/_build_env_vars" }}_{{ arch }} - upgrade_boost_post: &upgrade_boost_post - save_cache: - key: v5_upgrade_boost_cache_{{ checksum "/tmp/_build_env_vars" }}_{{ arch }} - paths: - - /tmp/boost_1_65_1 - upgrade_boost: &upgrade_boost - run: - name: Upgrade Boost - command: | - # Detect number of CPU cores - export NUMCORES=`nproc` - echo Using $NUMCORES cores - # Download and prepare boost (only if not already present from cache) - if [ ! -d "/tmp/boost_1_65_1" ]; then - echo "Didn't find boost in cache. Downloading and building." - wget -O /tmp/boost.tar.bz2 https://sourceforge.net/projects/boost/files/boost/1.65.1/boost_1_65_1.tar.bz2/download - if [ $(sha512sum /tmp/boost.tar.bz2 | awk '{print $1;}') == "a9e6866d3bb3e7c198f442ff09f5322f58064dca79bc420f2f0168eb63964226dfbc4f034a5a5e5958281fdf7518a1b057c894fbda0b61fced59c1661bf30f1a" ]; then - echo Correct sha512sum - else - echo Wrong sha512sum - sha512sum boost.tar.bz2 - exit 1 - fi - echo Extracting... - tar -xf /tmp/boost.tar.bz2 -C /tmp - rm -rf boost.tar.bz2 - cd /tmp/boost_1_65_1 - ./bootstrap.sh --with-toolset=${BUILD_TOOLSET} --with-libraries=filesystem,thread,chrono,program_options - cd .. - else - echo Found boost in cache. Use cache and build. - fi - # Compile and install boost (if cached, this should be fast) - cd /tmp/boost_1_65_1 - sudo ./b2 toolset=${BUILD_TOOLSET} link=static cxxflags=-fPIC -d0 -j$NUMCORES install build_pre: &build_pre restore_cache: keys: # Find most recent cache from any revision on the same branch (cache keys are prefix matched) # CIRCLE_PR_NUMBER is only set if this is a pull request. - - v4_build_cache_{{ checksum "/tmp/_build_env_vars" }}_{{ arch }}_{{ .Branch }}_{{ .Environment.CIRCLE_PR_NUMBER }} + - v6_build_cache_{{ checksum "/tmp/_build_env_vars" }}_{{ arch }}_{{ .Branch }}_{{ .Environment.CIRCLE_PR_NUMBER }} # Fallback to less specific caches if the one above wasn't found - - v4_build_cache_{{ checksum "/tmp/_build_env_vars" }}_{{ arch }}_{{ .Branch }} - - v4_build_cache_{{ checksum "/tmp/_build_env_vars" }}_{{ arch }} + - v6_build_cache_{{ checksum "/tmp/_build_env_vars" }}_{{ arch }}_{{ .Branch }} + - v6_build_cache_{{ checksum "/tmp/_build_env_vars" }}_{{ arch }} build_post: &build_post save_cache: - key: v4_build_cache_{{ checksum "/tmp/_build_env_vars" }}_{{ arch }}_{{ .Branch }}_{{ .Environment.CIRCLE_PR_NUMBER }}_{{ .Revision }} + key: v6_build_cache_{{ checksum "/tmp/_build_env_vars" }}_{{ arch }}_{{ .Branch }}_{{ .Environment.CIRCLE_PR_NUMBER }}_{{ .Revision }} paths: - - /ccache_data + - /build_cache build: &build run: name: Build @@ -164,6 +142,7 @@ references: # Build mkdir cmake cd cmake + conan install .. -s build_type=${BUILD_TYPE} --build=missing cmake .. -DBUILD_TESTING=on -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${OPENMP_PARAMS} ${CMAKE_FLAGS} make -j$NUMCORES @@ -175,14 +154,14 @@ references: command: | if "${RUN_TESTS}"; then cd cmake - ./test/gitversion/gitversion-test ${GTEST_ARGS} - ./test/cpp-utils/cpp-utils-test ${GTEST_ARGS} - if [ ! "$DISABLE_BROKEN_ASAN_TESTS" = true ] ; then ./test/fspp/fspp-test ${GTEST_ARGS} ; fi - ./test/parallelaccessstore/parallelaccessstore-test ${GTEST_ARGS} - ./test/blockstore/blockstore-test ${GTEST_ARGS} - ./test/blobstore/blobstore-test ${GTEST_ARGS} - ./test/cryfs/cryfs-test ${GTEST_ARGS} - ./test/cryfs-cli/cryfs-cli-test ${GTEST_ARGS} + ./bin/gitversion-test ${GTEST_ARGS} + ./bin/cpp-utils-test ${GTEST_ARGS} + if [ ! "$DISABLE_BROKEN_ASAN_TESTS" = true ] ; then ./bin/fspp-test ${GTEST_ARGS} ; fi + ./bin/parallelaccessstore-test ${GTEST_ARGS} + ./bin/blockstore-test ${GTEST_ARGS} + ./bin/blobstore-test ${GTEST_ARGS} + ./bin/cryfs-test ${GTEST_ARGS} + ./bin/cryfs-cli-test ${GTEST_ARGS} fi job_definition: &job_definition <<: *container_config @@ -191,9 +170,6 @@ references: - <<: *container_setup_pre - <<: *container_setup - <<: *container_setup_post - - <<: *upgrade_boost_pre - - <<: *upgrade_boost - - <<: *upgrade_boost_post - checkout - <<: *build_pre - <<: *build @@ -527,9 +503,6 @@ jobs: - <<: *container_setup_pre - <<: *container_setup - <<: *container_setup_post - - <<: *upgrade_boost_pre - - <<: *upgrade_boost - - <<: *upgrade_boost_post - checkout - run: name: clang-tidy diff --git a/.travisci/build_and_test.sh b/.travisci/build_and_test.sh index deb90903..4ce8ca88 100755 --- a/.travisci/build_and_test.sh +++ b/.travisci/build_and_test.sh @@ -32,19 +32,20 @@ cmake --version # Build echo Build target: ${BUILD_TARGET} +conan install .. -s build_type=${BUILD_TARGET} --build=missing cmake .. -DBUILD_TESTING=on -DCMAKE_BUILD_TYPE=${BUILD_TARGET} make -j$NUMCORES ccache --show-stats # Test -./test/gitversion/gitversion-test -./test/cpp-utils/cpp-utils-test -./test/parallelaccessstore/parallelaccessstore-test -./test/blockstore/blockstore-test -./test/blobstore/blobstore-test -./test/cryfs/cryfs-test +./bin/gitversion-test +./bin/cpp-utils-test +./bin/parallelaccessstore-test +./bin/blockstore-test +./bin/blobstore-test +./bin/cryfs-test # TODO Also run once fixed -# ./test/fspp/fspp-test -# ./test/cryfs-cli/cryfs-cli-test +# ./bin/fspp-test +# ./bin/cryfs-cli-test diff --git a/.travisci/install.sh b/.travisci/install.sh index 3e42c102..7426fcd0 100755 --- a/.travisci/install.sh +++ b/.travisci/install.sh @@ -18,5 +18,7 @@ brew install libomp # By default, travis only fetches the newest 50 commits. We need more in case we're further from the last version tag, so the build doesn't fail because it can't generate the version number. git fetch --unshallow --tags +pip install conan + # Setup ccache brew install ccache diff --git a/CMakeLists.txt b/CMakeLists.txt index e02ebd23..ae72e0c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,20 @@ option(USE_CLANG_TIDY "build with clang-tidy checks enabled" OFF) option(USE_IWYU "build with iwyu checks enabled" OFF) option(CLANG_TIDY_WARNINGS_AS_ERRORS "treat clang-tidy warnings as errors" OFF) +set(CONAN_BUILD_INFO_FILE ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) + +if(EXISTS ${CONAN_BUILD_INFO_FILE}) + include(${CONAN_BUILD_INFO_FILE}) +else() + message(WARNING "The file ${CONAN_BUILD_INFO_FILE} doesn't exist, you have to run conan install first") +endif() +conan_basic_setup(TARGETS SKIP_STD) + +if(CONAN_SETTINGS_COMPILER_LIBCXX STREQUAL "libstdc++") + # TODO Test this warning works correctly and that the proposed solution in the warning message works. + message(FATAL_ERROR "Conan is set up to build against libstdc++ (i.e. the legacy GCC ABI). We only support libstdc++11 (i.e. the new GCC ABI).\nPlease add the '-s compiler.libcxx=libstdc++11' argument when running 'conan install'.") +endif() + if(USE_IWYU) # note: for iwyu, we need cmake 3.3 cmake_minimum_required(VERSION 3.3 FATAL_ERROR) diff --git a/CMakeSettings.json b/CMakeSettings.json index 5b35c8d4..4b3a7ff4 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -7,7 +7,7 @@ "inheritEnvironments": [ "msvc_x86" ], "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "-DBUILD_TESTING=on -DBOOST_ROOT=C:\\local\\boost_1_68_0 -DDOKAN_PATH=\"C:\\Program Files\\Dokan\\Dokan Library-1.2.2\"", + "cmakeCommandArgs": "-DBUILD_TESTING=on -DDOKAN_PATH=\"C:\\Program Files\\Dokan\\Dokan Library-1.2.2\"", "buildCommandArgs": "-v", "ctestCommandArgs": "" }, @@ -18,7 +18,7 @@ "inheritEnvironments": [ "msvc_x86" ], "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "-DBUILD_TESTING=on -DBOOST_ROOT=C:\\local\\boost_1_68_0 -DDOKAN_PATH=\"C:\\Program Files\\Dokan\\Dokan Library-1.2.2\"", + "cmakeCommandArgs": "-DBUILD_TESTING=on -DDOKAN_PATH=\"C:\\Program Files\\Dokan\\Dokan Library-1.2.2\"", "buildCommandArgs": "-v", "ctestCommandArgs": "" }, @@ -29,7 +29,7 @@ "inheritEnvironments": [ "msvc_x64_x64" ], "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "-DBUILD_TESTING=on -DBOOST_ROOT=C:\\local\\boost_1_68_0 -DDOKAN_PATH=\"C:\\Program Files\\Dokan\\Dokan Library-1.2.2\"", + "cmakeCommandArgs": "-DBUILD_TESTING=on -DDOKAN_PATH=\"C:\\Program Files\\Dokan\\Dokan Library-1.2.2\"", "buildCommandArgs": "-v", "ctestCommandArgs": "" }, @@ -40,7 +40,7 @@ "inheritEnvironments": [ "msvc_x64_x64" ], "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "-DBUILD_TESTING=on -DBOOST_ROOT=C:\\local\\boost_1_68_0 -DDOKAN_PATH=\"C:\\Program Files\\Dokan\\Dokan Library-1.2.2\"", + "cmakeCommandArgs": "-DBUILD_TESTING=on -DDOKAN_PATH=\"C:\\Program Files\\Dokan\\Dokan Library-1.2.2\"", "buildCommandArgs": "-v", "ctestCommandArgs": "" } diff --git a/ChangeLog.txt b/ChangeLog.txt index 8dea146e..88797daf 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,9 @@ +Version 0.11.0 (unreleased) +--------------- +Build changes: +* Switch to Conan package manager + + Version 0.10.2 --------------- Fixed bugs: diff --git a/README.md b/README.md index 7caaf75f..7b92b7d8 100644 --- a/README.md +++ b/README.md @@ -45,13 +45,8 @@ Requirements - Git (for getting the source code) - GCC version >= 6.5 or Clang >= 4.0 - CMake version >= 3.1 + - Conan package manager - libcurl4 (including development headers) - - Boost libraries version >= 1.65.1 (including development headers) - - filesystem - - system - - chrono - - program_options - - thread - SSL development libraries (including development headers, e.g. libssl-dev) - libFUSE version >= 2.8.6 (including development headers), on Mac OS X instead install osxfuse from https://osxfuse.github.io/ - Python >= 2.7 @@ -60,13 +55,16 @@ Requirements You can use the following commands to install these requirements # Ubuntu - $ sudo apt install git g++ cmake make libcurl4-openssl-dev libboost-filesystem-dev libboost-system-dev libboost-chrono-dev libboost-program-options-dev libboost-thread-dev libssl-dev libfuse-dev python + $ sudo apt install git g++ cmake make libcurl4-openssl-dev libssl-dev libfuse-dev python + $ sudo pip install conan # Fedora - sudo dnf install git gcc-c++ cmake make libcurl-devel boost-devel boost-static openssl-devel fuse-devel python + sudo dnf install git gcc-c++ cmake make libcurl-devel openssl-devel fuse-devel python + $ sudo pip install conan # Macintosh - brew install cmake boost openssl libomp + $ brew install cmake openssl libomp + $ sudo pip install conan Build & Install --------------- @@ -79,6 +77,7 @@ Build & Install 2. Build $ mkdir cmake && cd cmake + $ conan install .. --build=missing $ cmake .. $ make @@ -97,7 +96,6 @@ Building on Windows (experimental) Build with Visual Studio 2017 and pass in the following flags to CMake: -DDOKAN_PATH=[dokan library location, e.g. "C:\Program Files\Dokan\DokanLibrary-1.2.1"] - -DBOOST_ROOT=[path to root of boost installation] If you set these variables correctly in the `CMakeSettings.json` file, you should be able to open the cryfs source folder with Visual Studio 2017. @@ -106,35 +104,25 @@ Troubleshooting On most systems, CMake should find the libraries automatically. However, that doesn't always work. -1. **Boost headers not found** - - Pass in the boost include path with - - cmake .. -DBoost_INCLUDE_DIRS=/path/to/boost/headers - - If you want to link boost dynamically (e.g. you don't have the static libraries), use the following: - - cmake .. -DBoost_USE_STATIC_LIBS=off - -2. **Fuse/Osxfuse library not found** +1. **Fuse/Osxfuse library not found** Pass in the library path with cmake .. -DFUSE_LIB_PATH=/path/to/fuse/or/osxfuse -3. **Fuse/Osxfuse headers not found** +2. **Fuse/Osxfuse headers not found** Pass in the include path with cmake .. -DCMAKE_CXX_FLAGS="-I/path/to/fuse/or/osxfuse/headers" -4. **Openssl headers not found** +3. **Openssl headers not found** Pass in the include path with cmake .. -DCMAKE_C_FLAGS="-I/path/to/openssl/include" -5. **OpenMP not found (osx)** +4. **OpenMP not found (osx)** Either build it without OpenMP diff --git a/appveyor.yml b/appveyor.yml index 2b14dcf0..e52e8a00 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -26,23 +26,30 @@ init: install: - choco install -y dokany --version 1.2.1.2000 --installargs INSTALLDEVFILES=1 + - pip install conan + - conan --version - cmake --version + - conan profile new default --detect + # note: Conan misdetects our x86 CI platform as x64, fix that + - if "%PLATFORM%"=="x86" ( conan profile update settings.arch=x86 default ) + - if "%PLATFORM%"=="x86" ( conan profile update settings.arch_build=x86 default ) build_script: - cmd: mkdir build - cmd: cd build # note: The cmake+ninja workflow requires us to set build type in both cmake commands ('cmake' and 'cmake --build'), otherwise the cryfs.exe will depend on debug versions of the visual studio c++ runtime (i.e. msvcp140d.dll) - - cmd: cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DBUILD_TESTING=on -DBOOST_ROOT="C:/Libraries/boost_1_67_0" -DDOKAN_PATH="C:/Program Files/Dokan/DokanLibrary-1.2.1" + - cmd: conan install .. -s build_type=%CONFIGURATION% --build=missing + - cmd: cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DBUILD_TESTING=on -DDOKAN_PATH="C:/Program Files/Dokan/DokanLibrary-1.2.1" - cmd: cmake --build . --config %CONFIGURATION% - - cmd: .\test\gitversion\gitversion-test.exe + - cmd: .\bin\gitversion-test.exe # cpp-utils-test disables ThreadDebuggingTest_ThreadName.*_thenIsCorrect because the appveyor image is too old to support the API needed for that - - cmd: .\test\cpp-utils\cpp-utils-test.exe --gtest_filter=-ThreadDebuggingTest_ThreadName.*_thenIsCorrect - #- cmd: .\test\fspp\fspp-test.exe - - cmd: .\test\parallelaccessstore\parallelaccessstore-test.exe - - cmd: .\test\blockstore\blockstore-test.exe - - cmd: .\test\blobstore\blobstore-test.exe - - cmd: .\test\cryfs\cryfs-test.exe - #- cmd: .\test\cryfs-cli\cryfs-cli-test.exe + - cmd: .\bin\cpp-utils-test.exe --gtest_filter=-ThreadDebuggingTest_ThreadName.*_thenIsCorrect + #- cmd: .\bin\fspp-test.exe + - cmd: .\bin\parallelaccessstore-test.exe + - cmd: .\bin\blockstore-test.exe + - cmd: .\bin\blobstore-test.exe + - cmd: .\bin\cryfs-test.exe + #- cmd: .\bin\cryfs-cli-test.exe - cmd: cpack -C %CONFIGURATION% --verbose -G WIX diff --git a/cmake-utils/utils.cmake b/cmake-utils/utils.cmake index da4dff8c..efb7a243 100644 --- a/cmake-utils/utils.cmake +++ b/cmake-utils/utils.cmake @@ -106,26 +106,8 @@ endfunction(target_enable_style_warnings) # target_add_boost(buildtarget system filesystem) # list all libraries to link against in the dependencies ################################################## function(target_add_boost TARGET) - # Load boost libraries - if(NOT DEFINED Boost_USE_STATIC_LIBS OR Boost_USE_STATIC_LIBS) - # Many supported systems don't have boost >= 1.65.1. Better link it statically. - message(STATUS "Boost will be statically linked") - set(Boost_USE_STATIC_LIBS ON) - else(NOT DEFINED Boost_USE_STATIC_LIBS OR Boost_USE_STATIC_LIBS) - message(STATUS "Boost will be dynamically linked") - set(Boost_USE_STATIC_LIBS OFF) - endif(NOT DEFINED Boost_USE_STATIC_LIBS OR Boost_USE_STATIC_LIBS) - set(BOOST_THREAD_VERSION 4) - find_package(Boost 1.65.1 - REQUIRED - COMPONENTS ${ARGN}) - target_include_directories(${TARGET} SYSTEM PUBLIC ${Boost_INCLUDE_DIRS}) - target_link_libraries(${TARGET} PUBLIC ${Boost_LIBRARIES}) + target_link_libraries(${TARGET} PUBLIC CONAN_PKG::boost) target_compile_definitions(${TARGET} PUBLIC BOOST_THREAD_VERSION=4) - if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - # Also link to rt, because boost thread needs that. - target_link_libraries(${TARGET} PUBLIC rt) - endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") endfunction(target_add_boost) ################################################## diff --git a/conanfile.py b/conanfile.py new file mode 100644 index 00000000..c9ceb2df --- /dev/null +++ b/conanfile.py @@ -0,0 +1,17 @@ +from conans import ConanFile, CMake + +class CryFSConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + requires = [ + ] + generators = "cmake" + default_options = { + # Need to disable boost-math because that doesn't compile for some reason on CI + "boost:without_math": True, + } + + def requirements(self): + if self.settings.os == "Windows": + self.requires("boost/1.69.0@conan/stable") + else: + self.requires("boost/1.65.1@conan/stable") diff --git a/run-clang-tidy.sh b/run-clang-tidy.sh index 0b0c5508..d2c55d9f 100755 --- a/run-clang-tidy.sh +++ b/run-clang-tidy.sh @@ -12,6 +12,7 @@ export NUMCORES=`nproc` && if [ ! -n "$NUMCORES" ]; then export NUMCORES=`sysctl echo Using ${NUMCORES} cores # Run cmake in current working directory, but on source that is in the same directory as this script file +conan install .. --build=missing cmake -DBUILD_TESTING=on -DCMAKE_EXPORT_COMPILE_COMMANDS=ON "${0%/*}" # Filter all third party code from the compilation database diff --git a/src/cryfs-unmount/CMakeLists.txt b/src/cryfs-unmount/CMakeLists.txt index 0a246a7f..f75ee353 100644 --- a/src/cryfs-unmount/CMakeLists.txt +++ b/src/cryfs-unmount/CMakeLists.txt @@ -11,6 +11,7 @@ add_library(${PROJECT_NAME} ${SOURCES}) target_link_libraries(${PROJECT_NAME} PUBLIC cpp-utils cryfs fspp-fuse) target_enable_style_warnings(${PROJECT_NAME}) target_activate_cpp14(${PROJECT_NAME}) +target_add_boost(${PROJECT_NAME} program_options) add_executable(${PROJECT_NAME}_bin main_unmount.cpp) set_target_properties(${PROJECT_NAME}_bin PROPERTIES OUTPUT_NAME cryfs-unmount) diff --git a/src/cryfs/CMakeLists.txt b/src/cryfs/CMakeLists.txt index 383582e7..9590f8c9 100644 --- a/src/cryfs/CMakeLists.txt +++ b/src/cryfs/CMakeLists.txt @@ -51,7 +51,7 @@ set(LIB_SOURCES add_library(${PROJECT_NAME} STATIC ${LIB_SOURCES}) target_link_libraries(${PROJECT_NAME} PUBLIC cpp-utils fspp-interface blockstore blobstore gitversion) -target_add_boost(${PROJECT_NAME} program_options chrono) # TODO Check that dependent projects don't get boost added (use PRIVATE here) +target_add_boost(${PROJECT_NAME} chrono) # TODO Check that dependent projects don't get boost added (use PRIVATE here) target_enable_style_warnings(${PROJECT_NAME}) target_activate_cpp14(${PROJECT_NAME}) diff --git a/src/fspp/fuse/CMakeLists.txt b/src/fspp/fuse/CMakeLists.txt index b991bd72..81c07c40 100644 --- a/src/fspp/fuse/CMakeLists.txt +++ b/src/fspp/fuse/CMakeLists.txt @@ -39,6 +39,7 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(CMAKE_FIND_FRAMEWORK LAST) find_library_with_path(FUSE "osxfuse" FUSE_LIB_PATH) target_link_libraries(${PROJECT_NAME} PUBLIC ${FUSE}) + target_include_directories(${PROJECT_NAME} PUBLIC /usr/local/include/osxfuse/) else() # Linux find_library_with_path(FUSE "fuse" FUSE_LIB_PATH) target_link_libraries(${PROJECT_NAME} PUBLIC ${FUSE}) diff --git a/src/fspp/fuse/params.h b/src/fspp/fuse/params.h index 4a45ef79..9903ac82 100644 --- a/src/fspp/fuse/params.h +++ b/src/fspp/fuse/params.h @@ -3,14 +3,6 @@ #define MESSMER_FSPP_FUSE_PARAMS_H_ #define FUSE_USE_VERSION 26 -#if defined(__linux__) || defined(__FreeBSD__) #include -#elif __APPLE__ -#include -#elif defined(_MSC_VER) -#include // Dokany fuse -#else -#error System not supported -#endif #endif