From d8e19e3e5a67b0b7abe66496cc951a5722e59bdd Mon Sep 17 00:00:00 2001 From: Mike Dev Date: Sat, 22 Sep 2018 21:58:42 +0200 Subject: [PATCH] [CMake] Add minimal cmake support - CMake file only supports add_subdirectory workflow. - Provides target Boost::container, but doesn't support installation or running unit tests. --- CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..8a6428e --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,39 @@ +# Copyright 2019 Mike Dev +# Distributed under the Boost Software License, Version 1.0. +# See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt +# +# NOTE: CMake support for Boost.Container is currently experimental at best +# and the interface is likely to change in the future + +cmake_minimum_required( VERSION 3.5 ) +project( BoostContainer LANGUAGES C CXX ) + +file( GLOB boost_container_cpp_files src/*.cpp ) + +add_library(boost_container + ${boost_container_cpp_files} + src/alloc_lib.c +) + +# This is the public target name, other libraries should link to +add_library( Boost::container ALIAS boost_container ) + +target_include_directories( boost_container PUBLIC include ) + +# NOTE: +# We deactivate autolinking, because cmake based builds don't need it and +# we don't implement name mangling for the library file anyway. +# Ususally the parent CMakeLists.txt file should already have globally defined BOOST_ALL_NO_LIB +target_compile_definitions( boost_container PUBLIC BOOST_CONTAINER_NO_LIB ) + +target_link_libraries( boost_container + PUBLIC + Boost::assert + Boost::config + Boost::container_hash + Boost::core + Boost::intrusive + Boost::move + Boost::static_assert + Boost::type_traits +)