From 2d152b9a62094b580c00cc423502d5f826e3e316 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Wed, 24 Jan 2024 14:24:58 -0800 Subject: [PATCH] Add pre-commit config --- CMakeLists.txt | 71 +++++++++++++++++++++++++++++++------------------ ConflictSet.cpp | 2 +- 2 files changed, 46 insertions(+), 27 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 54f60ec..bb89a53 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,17 +2,23 @@ cmake_minimum_required(VERSION 3.18) project( conflict_set VERSION 0.0.1 - DESCRIPTION "A data structure for detecting mvcc read-write conflicts in a keyspace of lexicographically-ordered byte sequences." + DESCRIPTION + "A data structure for detecting mvcc read-write conflicts in a keyspace of lexicographically-ordered byte sequences." LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 20) set(DEFAULT_BUILD_TYPE "Release") if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - message(STATUS "Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified.") - set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "Choose the type of build." FORCE) + message( + STATUS + "Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified.") + set(CMAKE_BUILD_TYPE + "${DEFAULT_BUILD_TYPE}" + CACHE STRING "Choose the type of build." FORCE) # Set the possible values of build type for cmake-gui - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" + "MinSizeRel" "RelWithDebInfo") endif() add_compile_options(-fdata-sections -ffunction-sections) @@ -35,16 +41,20 @@ endif() cmake_pop_check_state() check_include_file_cxx("arm_neon.h" HAS_ARM_NEON) -if (HAS_ARM_NEON) +if(HAS_ARM_NEON) add_compile_definitions(HAS_ARM_NEON) endif() add_library(${PROJECT_NAME} SHARED ConflictSet.cpp) -target_compile_options(conflict_set PRIVATE -fPIC -fno-exceptions -fvisibility=hidden) -target_link_options(conflict_set PRIVATE $<$>: -nodefaultlibs -lc>) +target_compile_options(conflict_set PRIVATE -fPIC -fno-exceptions + -fvisibility=hidden) +target_link_options(conflict_set PRIVATE $<$>: + -nodefaultlibs -lc>) -if (NOT APPLE) - target_link_options(conflict_set PRIVATE "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/linker.map") +if(NOT APPLE) + target_link_options( + conflict_set PRIVATE + "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/linker.map") endif() set(TEST_FLAGS -Wall -Wextra -Wpedantic -Wunreachable-code -UNDEBUG) @@ -52,7 +62,8 @@ set(TEST_FLAGS -Wall -Wextra -Wpedantic -Wunreachable-code -UNDEBUG) include(CTest) add_executable(conflict_set_main ConflictSet.cpp) -target_include_directories(conflict_set_main PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) +target_include_directories(conflict_set_main + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) target_compile_definitions(conflict_set_main PRIVATE ENABLE_MAIN) # libfuzzer target, to generate/manage corpus @@ -63,13 +74,15 @@ set(CMAKE_REQUIRED_LINK_OPTIONS ${FUZZ_FLAGS}) check_cxx_compiler_flag(${FUZZ_FLAGS} HAS_LIB_FUZZER) cmake_pop_check_state() -if (HAS_LIB_FUZZER) +if(HAS_LIB_FUZZER) add_executable(conflict_set_fuzz_test ConflictSet.cpp) - target_include_directories(conflict_set_fuzz_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) + target_include_directories(conflict_set_fuzz_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) target_compile_definitions(conflict_set_fuzz_test PRIVATE ENABLE_FUZZ) target_compile_options(conflict_set_fuzz_test PRIVATE ${TEST_FLAGS}) target_compile_options(conflict_set_fuzz_test PRIVATE ${FUZZ_FLAGS}) - target_link_options(conflict_set_fuzz_test PRIVATE ${FUZZ_FLAGS} -fsanitize=fuzzer) + target_link_options(conflict_set_fuzz_test PRIVATE ${FUZZ_FLAGS} + -fsanitize=fuzzer) endif() # corpus tests @@ -79,10 +92,12 @@ file(GLOB CORPUS_TESTS ${CMAKE_SOURCE_DIR}/corpus/*) add_executable(conflict_set_test_driver ConflictSet.cpp TestDriver.cpp) target_compile_options(conflict_set_test_driver PRIVATE ${TEST_FLAGS}) target_compile_definitions(conflict_set_test_driver PRIVATE ENABLE_FUZZ) -target_include_directories(conflict_set_test_driver PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) +target_include_directories(conflict_set_test_driver + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) foreach(TEST ${CORPUS_TESTS}) get_filename_component(hash ${TEST} NAME) - add_test(NAME conflict_set_corpus_${hash} COMMAND conflict_set_test_driver ${TEST}) + add_test(NAME conflict_set_corpus_${hash} COMMAND conflict_set_test_driver + ${TEST}) endforeach() # api smoke tests @@ -107,18 +122,22 @@ add_test(NAME conflict_set_cxx_api_test COMMAND conflict_set_cxx_api_test) include(GNUInstallDirs) -target_include_directories(${PROJECT_NAME} PUBLIC - $ - $) +target_include_directories( + ${PROJECT_NAME} + PUBLIC $ + $) -set_target_properties(${PROJECT_NAME} PROPERTIES - VERSION ${PROJECT_VERSION} - SOVERSION ${PROJECT_VERSION_MAJOR}) +set_target_properties( + ${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION} + SOVERSION ${PROJECT_VERSION_MAJOR}) -install(TARGETS ${PROJECT_NAME} EXPORT ConflictSetConfig - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) +install( + TARGETS ${PROJECT_NAME} + EXPORT ConflictSetConfig + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) install(EXPORT ConflictSetConfig DESTINATION share/ConflictSet/cmake) diff --git a/ConflictSet.cpp b/ConflictSet.cpp index 6fa1438..5aca692 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -1199,7 +1199,7 @@ void ConflictSet::setOldestVersion(int64_t oldestVersion) { } ConflictSet::ConflictSet(int64_t oldestVersion, [[maybe_unused]] uint64_t seed) - : impl(new(safe_malloc(sizeof(Impl))) Impl{oldestVersion}) {} + : impl(new (safe_malloc(sizeof(Impl))) Impl{oldestVersion}) {} ConflictSet::~ConflictSet() { if (impl) {