GithubHelp home page GithubHelp logo

boost-cmake's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boost-cmake's Issues

Clarity on README installation

I am working on a windows build using LLVM / Clang
I have tried writing this myself and was making progress, but still getting some strange errors.
Then i found this repo, and it looks well supported
here is my problem..
i downloaded source code and eliminated all of the other subdirectories from by current build.

PROJECT STRUCTURE

/myProj/
/myProj/extern/boost-cmake
/myProj/llvm

extern/CMakeLists.txt
which utilizes your boost-cmake project 👍

cmake_minimum_required(VERSION 3.11)
#--Project Details---------------------#
project(extern)

#--Sub Project Def---------------------#
add_subdirectory(boost-cmake)

this is what i get in return from terminal

cmake ../ -T"LLVM" && cmake --build .
-- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.16299.
Binary Tree path: C:/~/opt/myProj/llvm
-- Boost found: 1.69.0 C:/~/opt/myProj/llvm/_deps/boost-src
-- Could NOT find BZip2 (missing: BZIP2_LIBRARIES) (found version "1.0.6")
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY) (found version "1.2.11")
-- The following ICU libraries were not found:
--   uc (required)
--   dt (required)
--   i18n (required)
-- Failed to find all ICU components (missing: ICU_INCLUDE_DIR ICU_LIBRARY _ICU_REQUIRED_LIBS_FOUND) 
CMake Error at C:/Program Files/CMake/share/cmake-3.12/Modules/FindBoost.cmake:2025 (message):
  Unable to find the requested Boost libraries.

  Unable to find the Boost header files.  Please set BOOST_ROOT to the root
  directory containing Boost or BOOST_INCLUDEDIR to the directory containing
  Boost's headers.

So my questions are as follows:
1. it says could not find Bzip_Libraries, found version 1.0.6; so did it find them or not?
2. same question for zlib
3. It looks like the ICU Libraries are required, if that is the case then shouldn't the cmake script stop with an error?
4. does this not setup boost_root?

Missing libs/graph_parallel/src/allocator.cpp

Hi,

I am getting following error when running cmake generator on Linux. My main cmake list is very simple, just one executable and boost-cmake is added through add_subdirectory

CMake Error at external/boost-cmake/cmake/Modules/AddBoostLib.cmake:7 (add_library):
Cannot find source file:

<pathtosrcs>/external/boost-cmake/boost/boost_1_63_0/libs/graph_parallel/src/allocator.cpp

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx
Call Stack (most recent call first):
  external/boost-cmake/libs/graph_parallel.cmake:5 (_add_boost_lib)
  external/boost-cmake/CMakeLists.txt:61 (include)

Build failed with boost::locale

Hi,
I just added the boost::locale to my project as dependency and the build failed. It seems that boost::unique_lock is not found during the build. The other selected libraries (log, program_options) works fine. Boost::thread is compiled as well.

-- The CXX compiler identification is GNU 6.3.0
-- (K)ubuntu 17.04
-- CMake 3.8.2
-- failed with pre-set url and with sourcefource archive
-- tried with ICU, ICONV, STD and POSIX-Backend

/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/generator.cpp:122:17: error: ‘unique_lock’ is not a member of ‘boost’
                 boost::unique_lock<boost::mutex> guard(d->cached_lock);
                 ^~~~~
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/generator.cpp:122:48: error: expected primary-expression before ‘>’ token
                 boost::unique_lock<boost::mutex> guard(d->cached_lock);
                                                ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/generator.cpp:122:70: error: ‘guard’ was not declared in this scope
                 boost::unique_lock<boost::mutex> guard(d->cached_lock);
                                                                      ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/generator.cpp:150:17: error: ‘unique_lock’ is not a member of ‘boost’
                 boost::unique_lock<boost::mutex> guard(d->cached_lock);
                 ^~~~~
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/generator.cpp:150:48: error: expected primary-expression before ‘>’ token
                 boost::unique_lock<boost::mutex> guard(d->cached_lock);
                                                ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/generator.cpp:150:70: error: ‘guard’ was not declared in this scope
                 boost::unique_lock<boost::mutex> guard(d->cached_lock);
                                                                      ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/date_time.cpp: In function ‘std::__cxx11::string boost::locale::time_zone::global()’:
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/date_time.cpp:447:9: error: ‘unique_lock’ is not a member of ‘boost’
         boost::unique_lock<boost::mutex> lock(tz_mutex());
         ^~~~~
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/date_time.cpp:447:40: error: expected primary-expression before ‘>’ token
         boost::unique_lock<boost::mutex> lock(tz_mutex());
                                        ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/date_time.cpp:447:57: error: ‘lock’ was not declared in this scope
         boost::unique_lock<boost::mutex> lock(tz_mutex());
                                                         ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/date_time.cpp: In function ‘std::__cxx11::string boost::locale::time_zone::global(const string&)’:
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/date_time.cpp:453:9: error: ‘unique_lock’ is not a member of ‘boost’
         boost::unique_lock<boost::mutex> lock(tz_mutex());
         ^~~~~
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/date_time.cpp:453:40: error: expected primary-expression before ‘>’ token
         boost::unique_lock<boost::mutex> lock(tz_mutex());
                                        ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/date_time.cpp:453:57: error: ‘lock’ was not declared in this scope
         boost::unique_lock<boost::mutex> lock(tz_mutex());
                                                         ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/localization_backend.cpp: In static member function ‘static boost::locale::localization_backend_manager boost::locale::localization_backend_manager::global()’:
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/localization_backend.cpp:248:13: error: ‘unique_lock’ is not a member of ‘boost’
             boost::unique_lock<boost::mutex> lock(localization_backend_manager_mutex());
             ^~~~~
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/localization_backend.cpp:248:44: error: expected primary-expression before ‘>’ token
             boost::unique_lock<boost::mutex> lock(localization_backend_manager_mutex());
                                            ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/localization_backend.cpp:248:87: error: ‘lock’ was not declared in this scope
             boost::unique_lock<boost::mutex> lock(localization_backend_manager_mutex());
                                                                                       ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/localization_backend.cpp: In static member function ‘static boost::locale::localization_backend_manager boost::locale::localization_backend_manager::global(const boost::locale::localization_backend_manager&)’:
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/localization_backend.cpp:254:13: error: ‘unique_lock’ is not a member of ‘boost’
             boost::unique_lock<boost::mutex> lock(localization_backend_manager_mutex());
             ^~~~~
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/localization_backend.cpp:254:44: error: expected primary-expression before ‘>’ token
             boost::unique_lock<boost::mutex> lock(localization_backend_manager_mutex());
                                            ^
/home/tim/Projects/StellarPioneers/cmake-build-debug/lib/3rd_party/boost-cmake/boost/boost_1_63_0/libs/locale/src/shared/localization_backend.cpp:254:87: error: ‘lock’ was not declared in this scope
             boost::unique_lock<boost::mutex> lock(localization_backend_manager_mutex());

Small bug when upgrading boost version and using local directory option

First of all, awesome project, it's really inspired us to make better use of CMake!

Following the contribution from @rcdailey to allow for a locally stored archive (which is how we use it), I think I spotted a small bug in DownloadBoost.cmake

In the block that detects a new version (SHA check mismatch), it does a:
file(REMOVE "${DOWNLOAD_PATH}")
However, for the local file option, DOWNLOAD_PATH is the archive I'd like to deploy - so it deletes that one in error.

I've fixed this by introducing a new variable after download that stores the downloaded file name in the cache. Then, when deleting, don't delete DOWNLOAD_PATH but instead delete the previously downloaded file. Probably best to unset it too. If only using the local file option, then the download never happens and this variable remains blank, which is fine for me - I don't want our local boost archive deleted...

Write more documentation!

  • Explain why embedding works better than exported binary builds, give examples
  • Detail how to use in an enterprise environment using Git LFS, alternate bundle links or already existing Boost source folders
  • How to rebundle Boost sources and apply patches
  • List of platforms / compilers we are using in testing.

Boost log & pthread_mutex_robust.cpp: Should it be optional?

I'm having issues with boost log, more specifically this command which expects the file libs/log/config/pthread-mutex-robust/pthread_mutex_robust.cpp to be present, which it's not when boost BCP extracts the required subset of a bunch of modules (some of which use boost log).

Is this a bug with BCP, or should that command perhaps be wrapped in a if-file-exists statement?

Note: I don't know more about the file than the name + command suggests.

Cannot compile boost 1.7.6

➜  build git:(master) ✗ cmake3 .. -DBOOST_DISABLE_TESTS=ON                  
-- Fetching Boost
-- Fetching Boost - done
-- Boost found: 1.76.0 /home/next/boost-cmake/build/_deps/boost-src
-- Standalone mode detected
-- Found the following ICU libraries:
--   uc (required)
--   dt (required)
--   i18n (required)
-- Configuring done
CMake Error at cmake/Modules/AddBoostLib.cmake:7 (add_library):
  Cannot find source file:

    /home/next/boost-cmake/build/_deps/boost-src/libs/atomic/src/lockpool.cpp

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
  .hpp .hxx .in .txx
Call Stack (most recent call first):
  libs/atomic.cmake:1 (_add_boost_lib)
  CMakeLists.txt:84 (include)


CMake Error at cmake/Modules/AddBoostLib.cmake:7 (add_library):
  
  Cannot find source file:

    /home/next/boost-cmake/build/_deps/boost-src/libs/regex/src/c_regex_traits.cpp

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
  .hpp .hxx .in .txx
Call Stack (most recent call first):
  libs/regex.cmake:1 (_add_boost_lib)
  CMakeLists.txt:84 (include)


CMake Error at cmake/Modules/AddBoostLib.cmake:7 (add_library):
  No SOURCES given to target: Boost_atomic
Call Stack (most recent call first):
  libs/atomic.cmake:1 (_add_boost_lib)
  CMakeLists.txt:84 (include)


CMake Error at cmake/Modules/AddBoostLib.cmake:7 (add_library):
  No SOURCES given to target: Boost_regex
Call Stack (most recent call first):
  libs/regex.cmake:1 (_add_boost_lib)
  CMakeLists.txt:84 (include)


CMake Generate step failed.  Build files cannot be regenerated correctly.

Android Issues

First off, awesome looking library! I had boost integrated in an outdated version of the Android NDK but I wanted to upgrade to the latest version of Gradle + NDK on Android, and that required switching from gcc to clang and integrating with boost 1.70.0... Found this library and it looked to offer a great solution.

I have been experimenting with several different variations of the guidelines (adding as a sub-module and using the FetchContent within the CMake). I wanted to avoid the sub-module approach so I've been focusing on the FetchContent one.

This required me to manually update the CMake version (Android had only supported up to 3.10). I have managed to get it to support CMake version 3.14.4.

My CMake file looks roughly like this:

cmake_minimum_required(VERSION 3.12)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -Wall")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1z -Wall")

include(FetchContent)
FetchContent_Declare(
  Boost-CMake
  GIT_REPOSITORY https://github.com/Orphis/boost-cmake.git
)
FetchContent_GetProperties(Boost-CMake)
if(NOT boost-cmake_POPULATED)
  FetchContent_Populate(Boost-CMake)
  add_subdirectory(${boost-cmake_SOURCE_DIR} ${boost-cmake_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()

# includes a bunch of files
add_library(MyLib SHARED ....)

# this seemed to be necessary, guessing due to non-standard auto-generated location
find_package(Boost COMPONENTS circular_buffer REQUIRED)

target_link_libraries(MyLib
                        Boost::circular_buffer
                        )

Things seemed to be working. I did get a few errors but from reading through other open/closed issues, I saw your reply that it meant that everything was in fact working as expected. As well, when I run the CMake, it generates a bunch of boost-related folders/files.

The issue is that I get the following error:
org.gradle.api.UncheckedIOException: java.nio.file.AccessDeniedException: [MyProjectPath]\.externalNativeBuild\cmake\debug\armeabi-v7a\_deps\boost-cmake-src\.git\objects\pack\pack-9f2195dfb9d14b5d14c811b719879a70f0210228.idx

As you can see, it placed some kind of boost-cmake files deep in that directory.

My current configurations are:
Android Gradle Plugin version: 3.4.1
Gradle version: 5.1.1
CMake version: 3.14.4
Android NDK version: 19.2.5345600

My main questions are:

  1. Is my CMake file ok or am I missing something?
  2. Should the boost files be getting generated so that I can see them/open them? If so, to what location?

Any help is welcome. Thanks!

Add test programs

To check weither the libraries are properly compiled on all platforms.
Should only be added in standalone mode.

Unable to find ICU libraries?

I'm using CMake 3.8 rc2 with a toolchain for android NDK r14b on Windows.

Command line:

cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE="%~dp0/android.toolchain.cmake"

Toolchain:

set(CMAKE_SYSTEM_NAME Android)
set(CMAKE_SYSTEM_VERSION 15) # API level
set(CMAKE_ANDROID_ARCH_ABI armeabi-v7a)
set(CMAKE_ANDROID_STL_TYPE c++_static)
set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang)

string(REGEX REPLACE "\\\\" "/" ndk_path "$ENV{ANDROID_NDK}")
set(CMAKE_ANDROID_NDK ${ndk_path})

unset(ndk_path)

Root CMakeLists.txt file:

cmake_minimum_required(VERSION 3.7)

add_subdirectory(boost-cmake)

set(CMAKE_CXX_STANDARD 14)

set(project_name ndk_test)
project(${project_name})
add_library(${project_name} SHARED main.cpp)
target_link_libraries(${project_name} PUBLIC Boost::filesystem)

Logs when running CMake:

-- Downloading Boost from https://github.com/Orphis/boost-cmake/releases/download/v1.63.0%2B1/boost_1_63_0-1.tar.xz
-- [download 0% complete]
-- [download 1% complete]
-- [download 2% complete]
-- [download 3% complete]
-- [download 4% complete]
-- [download 5% complete]
-- [download 6% complete]
-- [download 7% complete]
-- [download 8% complete]
-- [download 9% complete]
-- [download 10% complete]
-- [download 11% complete]
-- [download 12% complete]
-- [download 13% complete]
-- [download 14% complete]
-- [download 15% complete]
-- [download 16% complete]
-- [download 17% complete]
-- [download 18% complete]
-- [download 19% complete]
-- [download 20% complete]
-- [download 21% complete]
-- [download 22% complete]
-- [download 23% complete]
-- [download 24% complete]
-- [download 25% complete]
-- [download 26% complete]
-- [download 27% complete]
-- [download 28% complete]
-- [download 29% complete]
-- [download 30% complete]
-- [download 31% complete]
-- [download 32% complete]
-- [download 33% complete]
-- [download 34% complete]
-- [download 35% complete]
-- [download 36% complete]
-- [download 37% complete]
-- [download 38% complete]
-- [download 39% complete]
-- [download 40% complete]
-- [download 41% complete]
-- [download 42% complete]
-- [download 43% complete]
-- [download 44% complete]
-- [download 45% complete]
-- [download 46% complete]
-- [download 47% complete]
-- [download 48% complete]
-- [download 49% complete]
-- [download 50% complete]
-- [download 51% complete]
-- [download 52% complete]
-- [download 53% complete]
-- [download 54% complete]
-- [download 55% complete]
-- [download 56% complete]
-- [download 57% complete]
-- [download 58% complete]
-- [download 59% complete]
-- [download 60% complete]
-- [download 61% complete]
-- [download 62% complete]
-- [download 63% complete]
-- [download 64% complete]
-- [download 65% complete]
-- [download 66% complete]
-- [download 67% complete]
-- [download 68% complete]
-- [download 69% complete]
-- [download 70% complete]
-- [download 71% complete]
-- [download 72% complete]
-- [download 73% complete]
-- [download 74% complete]
-- [download 75% complete]
-- [download 76% complete]
-- [download 77% complete]
-- [download 78% complete]
-- [download 79% complete]
-- [download 80% complete]
-- [download 81% complete]
-- [download 82% complete]
-- [download 83% complete]
-- [download 84% complete]
-- [download 85% complete]
-- [download 86% complete]
-- [download 87% complete]
-- [download 88% complete]
-- [download 89% complete]
-- [download 90% complete]
-- [download 91% complete]
-- [download 92% complete]
-- [download 93% complete]
-- [download 94% complete]
-- [download 95% complete]
-- [download 96% complete]
-- [download 97% complete]
-- [download 98% complete]
-- [download 99% complete]
-- [download 100% complete]
-- Extracting Boost archive...
-- Boost found: 1.63.0 C:/code/ndk_test/boost-cmake/boost/boost_1_63_0
-- Boost found: 1.63.0 C:/code/ndk_test/boost-cmake/boost/boost_1_63_0
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- The ASM compiler identification is Clang
-- Found assembler: C:/android/ndk/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe
-- Could NOT find BZip2 (missing:  BZIP2_LIBRARIES BZIP2_INCLUDE_DIR)
-- Found ZLIB: C:/android/ndk/platforms/android-15/arch-arm/usr/lib/libz.so (found version "1.2.3")
-- The following ICU libraries were not found:
--   uc (required)
--   dt (required)
--   i18n (required)
-- Failed to find all ICU components (missing:  ICU_INCLUDE_DIR ICU_LIBRARY _ICU_REQUIRED_LIBS_FOUND)
-- Boost locale unsupported on platform: need either iconv or ICU.
-- Configuring done
-- Generating done
-- Build files have been written to: C:/code/ndk_test/build

It is saying it has failed to find ICU and it didn't build boost. I'm not sure why bzip, zlib, and ICU libraries are even being searched for since you can build boost without them. I just want to build boost using the toolchain defined by my toolchain file.

Why is your boost-cmake script not working?

Cross compilation issue from linux to windows

I'm trying to cross-compile Boost to Windows using this project.

OS : Ubuntu 20

The cross compiler has been installed with :

sudo apt install mingw-w64

My cross compilation toolchain :

set(CMAKE_SYSTEM_NAME Windows)
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)

# cross compilers to use for C, C++ and Fortran
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
set(CMAKE_Fortran_COMPILER ${TOOLCHAIN_PREFIX}-gfortran)
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres)

# target environment on the build host system
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})

# modify default behavior of FIND_XXX() commands
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

The relevant part of my CMakeLists.txt :

# Find boost
add_subdirectory(libs/boost-cmake)

set(Boost_LIBRARIES
    PUBLIC Boost::filesystem
    PUBLIC Boost::system
    PUBLIC Boost::coroutine
)

add_executable(myexec src/main.cpp ${myexec_srcs})
target_link_libraries(myexec ${myexec_libs} ${Boost_LIBRARIES})

Cmake seems to run properly :

-- Fetching Boost
-- Fetching Boost - done
-- Boost found: 1.71.0 /mnt/34B6EBFAB6EBBB0E/Workspace_CCpp/SBPL_cpp/build/_deps/boost-src
-- Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR) 
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) 
-- The following ICU libraries were not found:
--   uc (required)
--   dt (required)
--   i18n (required)
-- Failed to find all ICU components (missing: ICU_INCLUDE_DIR ICU_LIBRARY _ICU_REQUIRED_LIBS_FOUND) 
-- Configuring done
-- Generating done

I don't have BZIP2 ICU or ZLIB since i'm using the cross compilation chain so that's ok.

But I get the following error :

[  4%] Built target Boost_chrono
[  8%] Built target Boost_thread
[  8%] Building ASM object project/libs/boost-cmake/CMakeFiles/Boost_context.dir/__/__/__/_deps/boost-src/libs/context/src/asm/jump_x86_64_ms_pe_gas.asm.obj
x86_64-w64-mingw32-gcc: warning: /home/user/MyProject/build/_deps/boost-src/libs/context/src/asm/jump_x86_64_ms_pe_gas.asm: linker input file unused because linking not done
[ 13%] Building ASM object project/libs/boost-cmake/CMakeFiles/Boost_context.dir/__/__/__/_deps/boost-src/libs/context/src/asm/make_x86_64_ms_pe_gas.asm.obj
x86_64-w64-mingw32-gcc: warning: /home/user/MyProject/build/_deps/boost-src/libs/context/src/asm/make_x86_64_ms_pe_gas.asm: linker input file unused because linking not done
[ 13%] Building ASM object project/libs/boost-cmake/CMakeFiles/Boost_context.dir/__/__/__/_deps/boost-src/libs/context/src/asm/ontop_x86_64_ms_pe_gas.asm.obj
x86_64-w64-mingw32-gcc: warning: /home/user/MyProject/build/_deps/boost-src/libs/context/src/asm/ontop_x86_64_ms_pe_gas.asm: linker input file unused because linking not done
[ 13%] Linking CXX static library libboost_context.a
/usr/bin/x86_64-w64-mingw32-ar: CMakeFiles/Boost_context.dir/__/__/__/_deps/boost-src/libs/context/src/asm/jump_x86_64_ms_pe_gas.asm.obj: Aucun fichier ou dossier de ce type
make[2]: *** [project/libs/boost-cmake/CMakeFiles/Boost_context.dir/build.make:107 : sbpl_cpp/libs/boost-cmake/libboost_context.a] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:672 : project/libs/boost-cmake/CMakeFiles/Boost_context.dir/all] Erreur 2
make: *** [Makefile:84 : all] Erreur 2

It seems it fails in the compilation of coroutine dependencies. It's as if there was somewhere a -c flag to prevent linking but I can't find it.
Any input on this issue is welcome.


To provide some context :

  • I already tried to cross compile boost from linux with no success. So i decided to try this repository.

`iconv_open` required at runtime?

Which parts of boost require iconv_open library at runtime? My Android library is trying to load it and it fails:

 dalvikvm: Trying to load lib /data/data/com.ttm.zapp/files/../lib/libzApp.so 0x41d94658
 dalvikvm: dlopen("/data/data/com.ttm.zapp/files/../lib/libzApp.so") failed: Cannot load library: soinfo_relocate(linker.cpp:975): cannot locate symbol "iconv_open" referenced by "libzApp.so"...

Doing a grep reveals that Boost Locale is using it, but I do not include these headers directly in my program. Which libs are requiring it? How can I disable it?

building log_setup failed

so i was trying to build orbum using this repo for the boost dependecy, it uses log and required that i build log_setup with it, but that resulted in this error

In file included from /home/zer0/orbum/external/boost/boost/boost_1_64_0/boost/log/sinks.hpp:27:0,
                 from /home/zer0/orbum/external/boost/boost/boost_1_64_0/libs/log/src/setup/init_from_settings.cpp:54:
/home/zer0/orbum/external/boost/boost/boost_1_64_0/boost/log/sinks/unbounded_ordering_queue.hpp: In member function ‘bool boost::log::v2s_mt_posix::sinks::unbounded_ordering_queue<OrderT>::dequeue_ready(boost::log::v2s_mt_posix::record_view&)’:
/home/zer0/orbum/external/boost/boost/boost_1_64_0/boost/log/sinks/unbounded_ordering_queue.hpp:204:28: error: ‘class boost::condition_variable’ has no member named ‘timed_wait’
                     m_cond.timed_wait(lock, posix_time::milliseconds(m_ordering_window - difference));
                            ^~~~~~~~~~
In file included from /home/zer0/orbum/external/boost/boost/boost_1_64_0/boost/log/sinks.hpp:29:0,
                 from /home/zer0/orbum/external/boost/boost/boost_1_64_0/libs/log/src/setup/init_from_settings.cpp:54:
/home/zer0/orbum/external/boost/boost/boost_1_64_0/boost/log/sinks/bounded_ordering_queue.hpp: In member function ‘bool boost::log::v2s_mt_posix::sinks::bounded_ordering_queue<OrderT, MaxQueueSizeV, OverflowStrategyT>::dequeue_ready(boost::log::v2s_mt_posix::record_view&)’:
/home/zer0/orbum/external/boost/boost/boost_1_64_0/boost/log/sinks/bounded_ordering_queue.hpp:231:28: error: ‘class boost::condition_variable’ has no member named ‘timed_wait’
                     m_cond.timed_wait(lock, posix_time::milliseconds(m_ordering_window - difference));
                            ^~~~~~~~~~
external/boost/CMakeFiles/Boost_log_setup.dir/build.make:158: recipe for target 'external/boost/CMakeFiles/Boost_log_setup.dir/boost/boost_1_64_0/libs/log/src/setup/init_from_settings.cpp.o' failed
make[2]: *** [external/boost/CMakeFiles/Boost_log_setup.dir/boost/boost_1_64_0/libs/log/src/setup/init_from_settings.cpp.o] Error 1
CMakeFiles/Makefile2:826: recipe for target 'external/boost/CMakeFiles/Boost_log_setup.dir/all' failed
make[1]: *** [external/boost/CMakeFiles/Boost_log_setup.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

the long story short is I found that setting BOOST_THREAD_USES_DATETIME=1 for log_setup fixed that error, i know you also use that varible in atomic without any precondition, but i thought ill check with you in that before i send a PR (or you can add it in yourself), relevant documentation

Build in Travis CI fails due to hash mismatch.

Hi there, thanks for the nice integration!

It works perfectly when I use it locally but unfortunately CMake fails on Travis CI. The hash of the downloaded file does not match the required hash. I think it's somehow not possible to download files using CMake on Travis CI.

Have you experienced this problem yourself? And do you maybe know a fix?

Travis CI log

-- Downloading Boost from https://github.com/Orphis/boost-cmake/releases/download/v1.63.0%2B1/boost_1_63_0-1.tar.xz

CMake Error at lib/boost/cmake/Modules/DownloadBoost.cmake:49 (file):
  file DOWNLOAD HASH mismatch
    for file: [/home/travis/build/my/project/lib/boost/boost_1_63_0-1.tar.xz.tmp]
      expected hash: [bb03ac7d13d6bfae52ac13ceaf54d88aa0c4776611bf60a942947f46aedcdb1a]
        actual hash: [e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]
             status: [1;"Unsupported protocol"]

Call Stack (most recent call first):
  lib/boost/CMakeLists.txt:10 (include)

CMake Error at lib/boost/cmake/Modules/DownloadBoost.cmake:59 (message):
  Download failed.  Status: 1 "Unsupported protocol"
  Log:

Call Stack (most recent call first):
  lib/boost/CMakeLists.txt:10 (include)

-- Configuring incomplete, errors occurred!
See also "/home/travis/build/my/project/build-test/CMakeFiles/CMakeOutput.log".
See also "/home/travis/build/my/project/build-test/CMakeFiles/CMakeError.log".

Usage with find_package REQUIRED etc.

Some of our existing dependencies use find_package(Boost REQUIRED) or check for the cache variables set by find_package/FindBoost (Boost_INCLUDE_DIR etc.). This seems like it would be quite a common usage. Is there any way to support this usage with boost-cmake?

Note: Even submitting a PR to the dependencies to use modern CMake (target_link_libraries TARGET Boost::thread) won't work as the find_package(Boost COMPONENTS thread REQUIRED) call with cause the configure step to fail unless we manually build the boost components required by the dependency. If we were to do that then we could end up in a weird situation where the dependency is linking to the prebuilt boost library and our library is linking to the boost-cmake boost library. No idea what cmake would do in that situation but it doesn't sound good.

Adding Boost 1.xx.x support, what's the approach?

After a lot of headaches I've found that a library I depend upon depends upon boost, but it uses some now deprecated & deleted utilities. Officially it's only supporting ~1.51.0. The oldest version of "modular boost" actually building properly is 1.56.0, however, so that's what I'm stuck with (hoping it'll work).

So, I want to add support for this version in boost-cmake so I can link it. What's your typical approach?

I've run boostdep and listed the --primary dependencies for some of the libs (in 1.65.0) but can't really find a pattern between what boostdep lists (looking only at 'buildable' libs, not header-onlys that are in Boost::boost) and what you've linked manually.

What gives? Will give this a try soon enough, just thought I'd check in before getting knee deep in!

the right way to enable/disable Boost features in main CMake script?

Hi Orphis/boost-cmake experts,

I am trying to port an old build-system to CMake (I am not too experienced with CMake).
I just tried boost-cmake and hats-off to its developers.. great package!

My project depends on Boost::locale and I am having some trouble with static linking against ICU libs. I know there are dozens of forums talking about it and suggesting changing link-order, etc. but nothing has worked for me so far. FYI, I end-up with something like this:

/usr/bin/c++    -static CMakeFiles/test_boost.dir/main.cpp.o  -o test_boost  boost-cmake/libboost_locale.a boost-cmake/libboost_thread.a boost-cmake/libboost_chrono.a /usr/lib/x86_64-linux-gnu/librt.a -lpthread /usr/local/lib/libicudata.a /usr/local/lib/libicui18n.a /usr/local/lib/libicuuc.a -ldl
/usr/bin/ld: /usr/local/lib/libicuuc.a(putil.ao): in function `uprv_dl_open_70':
putil.cpp:(.text.uprv_dl_open_70+0x16): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /usr/local/lib/libicuuc.a(udata.ao): in function `doLoadFromCommonData(signed char, char const*, char const*, char const*, char const*, char const*, char const*, char const*, signed char (*)(void*, char const*, char const*, UDataInfo const*), void*, UErrorCode*, UErrorCode*) [clone .constprop.0]':
udata.cpp:(.text._ZL20doLoadFromCommonDataaPKcS0_S0_S0_S0_S0_S0_PFaPvS0_S0_PK9UDataInfoES1_P10UErrorCodeS8_.constprop.0+0x3ca): undefined reference to `icudt70_dat'
/usr/bin/ld: udata.cpp:(.text._ZL20doLoadFromCommonDataaPKcS0_S0_S0_S0_S0_S0_PFaPvS0_S0_PK9UDataInfoES1_P10UErrorCodeS8_.constprop.0+0x4af): undefined reference to `icudt70_dat'

ICU lib has given me other troubles too, so I decided to disable it (and use the iconv lib instead) by doing:

set(BOOST_LOCALE_ENABLE_ICU_BACKEND OFF)
add_subdirectory(boost-cmake)
...

I know this is not the recommended way to override options in sub-projects. And of course it fails at configure:

-- Boost locale unsupported on platform: need either iconv or ICU.
-- Configuring done
CMake Error at CMakeLists.txt:11 (add_executable):
  Target "test_boost" links to target "Boost::locale" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

I thought the option BOOST_LOCALE_ENABLE_ICONV_BACKEND in boost-cmake\libs\locale.cmake will take effect. But it doesn't. I have no idea of how to configure it right.

My questions is: what is the foreseen way to configure Boost with Orphis/boost-cmake? Can you please provide an example?

Here is my CMake script for a hello-world C++ program using Boost::locale:

cmake_minimum_required(VERSION 3.16)

project(test_boost)

# boost-cmake setup
# -----------------
find_library(RT_LIBRARY NAMES librt.a)
set(BOOST_LOCALE_ENABLE_ICU_BACKEND OFF)
add_subdirectory(boost-cmake)

# My hello-world binary
# ---------------------
add_executable(test_boost main.cpp)
target_link_libraries(test_boost
	PRIVATE
		Boost::boost
		Boost::locale
)
target_link_options(test_boost PRIVATE -static)

Other details about my setup:

  • I am using WSL2 Ubuntu 20.04.3 LTS
  • Orphis/boost-cmake branch master
  • gcc 9.3.0
  • cmake 3.16.3
  • Boost 1.71.0 (default in Orphis/boost-cmake)

Thanks in advance!

Enable using the git version of boost instead of an archive

Hi,

It would be great if I would be able to use the cloned version of boost instead of using an archive.
It would also allow to build new versions of boost much faster and check that they are not failing to compile.

By the why, excellent project!

"Fetching Boost" happens every time I configure

Each time I click "Configure" using CMake GUI (version 3.14.2), I see "Fetching Boost". Either this is doing a download or archive extraction, I can't tell for sure, but it is a very time consuming step. Can you please optimize this so that if an archive or extracted output already exists, you skip the corresponding steps?

Optional install rules?

You've expressed distaste for install() rules, but would you be opposed to their addition as an optional feature? I'd be interested in having/adding such a thing myself.

Boost v1.69.0

I notice that Boost 1.69.0 is out. A few build changes are apparent browsing the release notes. System library is now header-only, and eg boost::filesystem has dropped its dependency on system. Signals library has been removed...

This probably requires a number of small tweaks to our boost-cmake scripts...

Add tags for boost versions

I see that new boost versions are being added to the repo, but the repo tags aren't updated.

Can you please update the tags to make it easier for shallow clones or other tag-based downloads?

Add option to support building boost dynamic library

I have a usage case where I need to link my app against Boost::unit_test_framework dynamic library with BOOST_TEST_DYN_LINK defined. It seems boost-cmake only builds boost static libraries which causes the error in my use case:

ld: CMakeFiles/mytest.dir/test.cpp.o: in function `main':
test.cpp:(.text+0xad3): undefined reference to `boost::unit_test::unit_test_main(bool (*)(), int, char**)'

I suggest boost-cmake should have an option to allow the users to use either dynamic or static boost libraries

Add Travis and Appveyor CI

Should cover at least Windows 32, 64bit, macOS 64bit, all 4 iOS archs, Linux.
Goal is just to compile all modules in their current state (no linking).

Feature Request : checking in partial boost trees.

It would be great if we could use boost-cmake to download boost, identify which modules we need and then only check those modules into git.
Then future calls to cmake could use the boost tree that was in git instead of downloading all of boost anew.

Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR) Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

Hi, I was trying to use this and gave it a shot on CMake. Ended up with this:
Looking for linux
Looking for linux - not found
Looking for _WIN32
Looking for _WIN32 - found
Looking for APPLE
Looking for APPLE - not found
Looking for ANDROID
Looking for ANDROID - not found
Looking for FreeBSD
Looking for FreeBSD - not found
Looking for _M_IX86
Looking for _M_IX86 - not found
Looking for GNUC
Looking for GNUC - not found
The ASM_MASM compiler identification is MSVC
Found assembler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.26.28801/bin/Hostx64/x64/ml64.exe
Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR)
Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
The following ICU libraries were not found:
uc (required)
dt (required)
i18n (required)
Failed to find all ICU components (missing: ICU_INCLUDE_DIR ICU_LIBRARY _ICU_REQUIRED_LIBS_FOUND)
Configuring done

How to use ExternalProject_Add()?

I'd like to use ExternalProject_Add() instead of building boost projects with my other targets. The reason is due to build times but also I do not want 'clean' commands to cause boost to rebuild. Also the boost projects create clutter in Visual Studio solution explorer and slow down indexing/project load times.

I think to get external project working, I need an INSTALL target. Doesn't seem you have one defined. Should one be implemented or do you have any other advice for building this way?

IOS variable

I know you probably don’t explicitly mean for people to use the ios cmake toolchain you've included here as part of their project, but it was handy enough since I'm using this as a sobmodule.

however I've noticed that I had to check for IOS_PLATFORM instead IOS to confirm the build is for IOS and IOS seems more inline with current convention and perhaps to defineTARGET_OS_IPHONE and TARGET_IPHONE_SIMULATOR, while the toolchain already checks for this anyway https://github.com/Orphis/boost-cmake/blob/master/cmake/Toolchains/ios.cmake#L35

Generate v1.68.0 release

Please. Only you can really do that (i.e. associate the repacked archive with the release).

I've tried with my repo. Everything seems to work.

Thank you.

Cheers. G.

CMAKE_ASM_COMPILE_OBJECT "missing" error in CMake

I get the following error in CMake when I add_subdirectory() on your repo:

CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_ASM_COMPILE_OBJECT

If I do not add_subdirectory(), this error goes away. Do you have any idea what is causing this?

user-defined BOOST_LIBS_OPTIONAL

Is it possible add support for a user-defined list of compiled libraries?
Under MSVC all libraries from BOOST_LIBS_OPTIONAL add to the workspace as subprojects. This does not depend from target_link_libraries and takes too much time during compilation.
When I build a user project under linux (gcc/clang), then only used libraries are compiled. This problem exists with compilation under MSVC only.

Somewhere in user space CMakeLissts.txt:
set(BOOST_LIBS_OPTIONAL program_options system)
add_subdirectory(../external/boost-cmake external/boost)
find_package(Boost REQUIRED)
target_link_libraries(user_target PRIVATE Boost::boost)
target_link_libraries(user_target PRIVATE Boost::program_options)

Inside boost-cmake:
if(NOT BOOST_LIBS_OPTIONAL)
set(BOOST_LIBS_OPTIONAL
# Compiled libs
atomic
...
wave
)
endif()

Doesn't work with Windows 11 and VS 22

I fail to understand how this project can claim to be "cross platform" when it doesn't work with Windows 11 and Visual Studio 22.

What am I missing? Include paths don't work for a start, even if I add them manually. Which breaks the whole idea of being 'cross-platform'.

Apologies if this issue seems cranky. I've had to rever all my changes after the hope that it would solve my cross-platform issues.

What I did: Use cmake in git-bash
What I expected: To be able to open and build the resulting .sln file
What happened: No boost headers were found and no libraries linked.

Changing the BOOST_URL leads to linking error

Due to the recurrent issue #88, I'm trying to use an alternative BOOST_URL from ``.

But after I changed the URL and recompile my code, the following linking errors appear:

"boost::filesystem::emit_error(int, boost::system::error_code*, char const*)", referenced from:
      boost::filesystem::error(int, boost::system::error_code*, char const*) in libboost_filesystem.a(operations.cpp.o)
  "boost::filesystem::emit_error(int, boost::filesystem::path const&, boost::system::error_code*, char const*)", referenced from:
      boost::filesystem::error(int, boost::filesystem::path const&, boost::system::error_code*, char const*) in libboost_filesystem.a(operations.cpp.o)
  "boost::filesystem::emit_error(int, boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code*, char const*)", referenced from:
      boost::filesystem::error(int, boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code*, char const*) in libboost_filesystem.a(operations.cpp.o)
  "boost::filesystem::filesystem_error::filesystem_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::system::error_code)", referenced from:
      boost::filesystem::detail::current_path(boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
  "boost::filesystem::filesystem_error::filesystem_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::filesystem::path const&, boost::system::error_code)", referenced from:
      boost::filesystem::detail::canonical(boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::symlink_status(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::read_symlink(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::create_directories(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::permissions(boost::filesystem::path const&, boost::filesystem::perms, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      ...
  "boost::filesystem::filesystem_error::filesystem_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code)", referenced from:
      boost::filesystem::detail::copy(boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
  "boost::filesystem::filesystem_error::~filesystem_error()", referenced from:
      boost::filesystem::detail::canonical(boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::symlink_status(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::read_symlink(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::copy(boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::create_directories(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::current_path(boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      ...
  "boost::filesystem::detail::dir_itr_close(void*&, void*&)", referenced from:
      boost::filesystem::detail::dir_itr_imp::~dir_itr_imp() in libAnEnIO.a(FunctionsIO.cpp.o)
      boost::filesystem::detail::dir_itr_imp::~dir_itr_imp() in libboost_filesystem.a(operations.cpp.o)
  "boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, unsigned int, boost::system::error_code*)", referenced from:
      boost::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const&, boost::filesystem::directory_options) in libAnEnIO.a(FunctionsIO.cpp.o)
      boost::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const&, boost::system::error_code&) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const&, boost::filesystem::directory_options::enum_type) in libboost_filesystem.a(operations.cpp.o)
  "boost::filesystem::detail::directory_iterator_increment(boost::filesystem::directory_iterator&, boost::system::error_code*)", referenced from:
      boost::filesystem::directory_iterator::increment() in libAnEnIO.a(FunctionsIO.cpp.o)
      boost::filesystem::detail::(anonymous namespace)::remove_all_aux(boost::filesystem::path const&, boost::filesystem::file_type, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
  "boost::filesystem::directory_entry::get_status(boost::system::error_code*) const", referenced from:
      boost::filesystem::directory_entry::status() const in libAnEnIO.a(FunctionsIO.cpp.o)
  "typeinfo for boost::filesystem::filesystem_error", referenced from:
      boost::filesystem::detail::canonical(boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::symlink_status(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::read_symlink(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::copy(boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::create_directories(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)
      boost::filesystem::detail::current_path(boost::system::error_code*) in libboost_filesystem.a(operations.cpp.o)

This is how I'm using this module. You won't see the code where I change BOOST_URL because that is still local. Everything was working well when I don't change the URL (well, as for now, since the Boost mirror is down, the downloading won't go through).

Please advice. Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.