CMakeLists.txt 2.13 KB
Newer Older
1 2 3 4 5 6 7
project (project_embb_containers_cpp)

file(GLOB_RECURSE EMBB_CONTAINERS_CPP_SOURCES "src/*.cc" "src/*.h")
file(GLOB_RECURSE EMBB_CONTAINERS_CPP_HEADERS "include/*.h")
file(GLOB_RECURSE EMBB_CONTAINERS_CPP_TEST_SOURCES "test/*.cc" "test/*.h")
   
# Execute the GroupSources macro
8
include(${CMAKE_SOURCE_DIR}/CMakeCommon/GroupSourcesMSVC.cmake)
9 10 11 12 13 14
GroupSourcesMSVC(include)
GroupSourcesMSVC(src)
GroupSourcesMSVC(test)

set (EMBB_CONTAINERS_CPP_INCLUDE_DIRS "include" "src" "test")
include_directories(${EMBB_CONTAINERS_CPP_INCLUDE_DIRS}
15
                    ${CMAKE_CURRENT_BINARY_DIR}/include
16 17 18 19 20
                    ${CMAKE_CURRENT_SOURCE_DIR}/../base_c/include
                    ${CMAKE_CURRENT_BINARY_DIR}/../base_c/include
                    ${CMAKE_CURRENT_SOURCE_DIR}/../base_cpp/include
                    ${CMAKE_CURRENT_BINARY_DIR}/../base_cpp/include)

21 22 23 24 25 26 27 28 29 30 31 32 33
add_subdirectory(generator)
set(GENERATOR_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/include/embb/containers/internal)
set(CHROMATIC_TREE_GENERATED_HEADER ${GENERATOR_OUTPUT_DIR}/lock_free_chromatic_tree-rebalance.h)

file(MAKE_DIRECTORY ${GENERATOR_OUTPUT_DIR})
add_custom_command (
  OUTPUT ${CHROMATIC_TREE_GENERATED_HEADER}
  COMMAND chromatic_tree_generator ${CHROMATIC_TREE_GENERATED_HEADER}
  DEPENDS chromatic_tree_generator
)

add_library (embb_containers_cpp ${EMBB_CONTAINERS_CPP_SOURCES} ${EMBB_CONTAINERS_CPP_HEADERS}
                                 ${CHROMATIC_TREE_GENERATED_HEADER})
34 35 36 37 38 39 40 41 42 43 44 45
target_link_libraries(embb_containers_cpp embb_base_cpp)

if (BUILD_TESTS STREQUAL ON)
  include_directories(${CMAKE_CURRENT_BINARY_DIR}/../partest/include)
  add_executable (embb_containers_cpp_test ${EMBB_CONTAINERS_CPP_TEST_SOURCES})
  target_link_libraries(embb_containers_cpp_test embb_containers_cpp 
                        partest embb_base_cpp embb_base_c ${compiler_libs})
  CopyBin(BIN embb_containers_cpp_test DEST ${local_install_dir})
endif()

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/embb
        DESTINATION include FILES_MATCHING PATTERN "*.h")
46
install(FILES ${CHROMATIC_TREE_GENERATED_HEADER} DESTINATION include/embb/containers/internal)
47
install(TARGETS embb_containers_cpp DESTINATION lib)