diff --git a/CMakeLists.txt b/CMakeLists.txt index 55278c6..557cbce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ # ------------------------------ Setup ------------------------------- # cmake_minimum_required(VERSION 3.16.3) -project(Concurrency) +project(concurrency) set(CMAKE_CXX_STANDARD 17) option(CodeCoverage "CodeCoverage" OFF) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules/) @@ -27,13 +27,22 @@ else() $<$:--coverage> ) endif() -include_directories(include) + +# ----------------------------- Library ------------------------------ # +add_library(${CMAKE_PROJECT_NAME} INTERFACE) +set(header_files + include/concurrency/UnorderedMap.hpp + include/concurrency/ShardedUnorderedMap.hpp) +target_sources(${CMAKE_PROJECT_NAME} INTERFACE ${header_files}) +target_include_directories(${CMAKE_PROJECT_NAME} INTERFACE include/) + # -------------------------- Build Examples -------------------------- # set("SIMPLE_EXAMPLE_SRC" examples/simple/main.cpp ) add_executable(${CMAKE_PROJECT_NAME}_simple_example ${SIMPLE_EXAMPLE_SRC}) +target_link_libraries(${CMAKE_PROJECT_NAME}_simple_example PRIVATE ${CMAKE_PROJECT_NAME}) set("MAP_BENCHMARK_SRC" examples/map_benchmark/main.cpp @@ -42,7 +51,8 @@ set("MAP_BENCHMARK_SRC" find_package(Threads REQUIRED) add_executable(${CMAKE_PROJECT_NAME}_map_benchmark ${MAP_BENCHMARK_SRC}) target_include_directories(${CMAKE_PROJECT_NAME}_map_benchmark PRIVATE benchmark examples/map_benchmark) -target_link_libraries(${CMAKE_PROJECT_NAME}_map_benchmark Threads::Threads) +target_link_libraries(${CMAKE_PROJECT_NAME}_map_benchmark PRIVATE Threads::Threads) +target_link_libraries(${CMAKE_PROJECT_NAME}_map_benchmark PRIVATE ${CMAKE_PROJECT_NAME}) # --------------------------- Build Tests ---------------------------- # include(FetchContent) @@ -59,7 +69,8 @@ set("TEST_SRC" ) enable_testing() add_executable(${CMAKE_PROJECT_NAME}_test ${TEST_SRC}) -target_link_libraries(${CMAKE_PROJECT_NAME}_test gtest_main) +target_link_libraries(${CMAKE_PROJECT_NAME}_test PRIVATE gtest_main) +target_link_libraries(${CMAKE_PROJECT_NAME}_test PRIVATE ${CMAKE_PROJECT_NAME}) include(GoogleTest) gtest_discover_tests(${CMAKE_PROJECT_NAME}_test) @@ -69,4 +80,4 @@ if (CMAKE_BUILD_TYPE MATCHES Debug) include(CodeCoverage) setup_target_for_coverage(${PROJECT_NAME}_coverage ${CMAKE_PROJECT_NAME}_test coverage --gtest_output=xml:coverage.junit.xml) endif() -endif() \ No newline at end of file +endif() diff --git a/tools/build.sh b/tools/build.sh index 1757bc6..e799057 100755 --- a/tools/build.sh +++ b/tools/build.sh @@ -53,7 +53,6 @@ mkdir -p "$(dirname "${BASH_SOURCE[0]}")/../build" pushd "$(dirname "${BASH_SOURCE[0]}")/../build" >/dev/null if [[ "${CLEAN}" = "true" ]]; then rm -rf ./* - git checkout README.md fi cmake -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" "${EXTRA_CMAKE_OPTS}" .. && make popd >/dev/null diff --git a/tools/coverage.sh b/tools/coverage.sh index e4e3024..4bf75fe 100755 --- a/tools/coverage.sh +++ b/tools/coverage.sh @@ -5,6 +5,6 @@ pushd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null ./build.sh -b Coverage popd >/dev/null pushd "$(dirname "${BASH_SOURCE[0]}")/../build/" >/dev/null -make Concurrency_coverage +make concurrency_coverage popd >/dev/null echo "View coverage results by opening the html file referenced above in a browser." diff --git a/tools/test.sh b/tools/test.sh index 45c8b95..17f369e 100755 --- a/tools/test.sh +++ b/tools/test.sh @@ -3,5 +3,5 @@ set -e pushd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null ./build.sh -../build/Concurrency_test +../build/concurrency_test popd >/dev/null