Skip to content

Commit

Permalink
Fixed install.sh bug where default install location was not respected
Browse files Browse the repository at this point in the history
  • Loading branch information
Kardbord committed Jul 19, 2022
1 parent ad4f309 commit 60c8718
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 42 deletions.
50 changes: 25 additions & 25 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ else()
$<$<CONFIG:DEBUG>:-ggdb3>
$<$<CONFIG:DEBUG>:-fprofile-arcs>
$<$<CONFIG:DEBUG>:-ftest-coverage>
)
)
add_link_options(
$<$<CONFIG:DEBUG>:-lgcov>
$<$<CONFIG:DEBUG>:--coverage>
)
)
endif()

# ----------------------------- Library ------------------------------ #
Expand All @@ -38,50 +38,50 @@ if(INSTALL MATCHES ON)
add_library(${CMAKE_PROJECT_NAME} INTERFACE)
target_include_directories(${CMAKE_PROJECT_NAME} INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
target_compile_features(${CMAKE_PROJECT_NAME} INTERFACE cxx_std_17)

target_sources(${CMAKE_PROJECT_NAME}
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/concurrency/UnorderedMap.hpp>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/concurrency/ShardedUnorderedMap.hpp>
$<INSTALL_INTERFACE:include/concurrency/UnorderedMap.hpp>
$<INSTALL_INTERFACE:include/concurrency/ShardedUnorderedMap.hpp>)
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/concurrency/UnorderedMap.hpp>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/concurrency/ShardedUnorderedMap.hpp>
$<INSTALL_INTERFACE:include/concurrency/UnorderedMap.hpp>
$<INSTALL_INTERFACE:include/concurrency/ShardedUnorderedMap.hpp>)

install(TARGETS ${CMAKE_PROJECT_NAME}
EXPORT ${PROJECT_NAME}_Targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
EXPORT ${PROJECT_NAME}_Targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})

include(CMakePackageConfigHelpers)
write_basic_package_version_file("concurrencyConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion)
configure_package_config_file(
"${PROJECT_SOURCE_DIR}/cmake/concurrencyConfig.cmake.in"
"${PROJECT_BINARY_DIR}/concurrencyConfig.cmake"
INSTALL_DESTINATION
${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)

install(EXPORT ${PROJECT_NAME}_Targets
FILE ${PROJECT_NAME}Targets.cmake
NAMESPACE ${PROJECT_NAME}::
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)
FILE ${PROJECT_NAME}Targets.cmake
NAMESPACE ${PROJECT_NAME}::
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)

install(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)

install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME} DESTINATION include)
else()
include_directories(include)
# -------------------------- Build Examples -------------------------- #
set("SIMPLE_EXAMPLE_SRC"
examples/simple/main.cpp
)
)
add_executable(${CMAKE_PROJECT_NAME}_simple_example ${SIMPLE_EXAMPLE_SRC})

set("MAP_BENCHMARK_SRC"
examples/map_benchmark/main.cpp
examples/map_benchmark/Benchmark.cpp
)
)
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)
Expand All @@ -92,14 +92,14 @@ else()
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip
)
)
IF (WIN32)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
ENDIF()
FetchContent_MakeAvailable(googletest)
set("TEST_SRC"
tests/UnorderedConcurrentMapTests.cpp
)
)
enable_testing()
add_executable(${CMAKE_PROJECT_NAME}_test ${TEST_SRC})
target_link_libraries(${CMAKE_PROJECT_NAME}_test PRIVATE gtest_main)
Expand Down
38 changes: 21 additions & 17 deletions tools/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,34 @@ function usage() {
INSTALL_PREFIX=""
while getopts ":hp:" opt; do
case "${opt}" in
p)
INSTALL_PREFIX="${OPTARG}"
;;
h)
usage
exit 0
;;
*)
usage
exit 1
;;
p)
INSTALL_PREFIX="${OPTARG}"
;;
h)
usage
exit 0
;;
*)
usage
exit 1
;;
esac
done
shift $((OPTIND - 1))

if [[ -n "${INSTALL_PREFIX}" ]] && ! [[ -d "${INSTALL_PREFIX}" ]]; then
echo "No such directory: ${INSTALL_PREFIX}"
exit 1
fi

mkdir -p "$(dirname "${BASH_SOURCE[0]}")/../build"
pushd "$(dirname "${BASH_SOURCE[0]}")/../build" >/dev/null
rm -rf ./* # Start from clean slate
cmake .. "-DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX}" -DINSTALL=ON
if [[ -n "${INSTALL_PREFIX}" ]]; then
if ! [[ -d "${INSTALL_PREFIX}" ]]; then
echo "No such directory: ${INSTALL_PREFIX}"
exit 1
fi
cmake .. "-DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX}" -DINSTALL=ON
else
cmake .. -DINSTALL=ON
fi
cmake --build . --config Release --target install -- -j "$(nproc)"

rm -rf ./* # Clean up build files
popd >/dev/null

0 comments on commit 60c8718

Please sign in to comment.