Skip to content

Commit

Permalink
build: use commit id for version when unspecified
Browse files Browse the repository at this point in the history
  • Loading branch information
NikolaDucak committed May 25, 2024
1 parent 88d8766 commit 8a1e1e0
Show file tree
Hide file tree
Showing 3 changed files with 121 additions and 119 deletions.
62 changes: 37 additions & 25 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
cmake_minimum_required(VERSION 3.14)

# If version number is not provided, just use a dummy
# If version number is not provided, use commit id.
if(NOT CAPS_LOG_VERSION)
set(CAPS_LOG_VERSION "development")
find_package(Git)
if(Git_FOUND)
execute_process(
COMMAND "${GIT_EXECUTABLE}" rev-parse HEAD
OUTPUT_VARIABLE CAPS_LOG_COMMIT_ID
OUTPUT_STRIP_TRAILING_WHITESPACE)
else()
set(CAPS_LOG_COMMIT_ID "NOT_FOUND")
endif()
set(CAPS_LOG_VERSION "commit-${CAPS_LOG_COMMIT_ID}")
endif()

message(STATUS "Captain's Log version: ${CAPS_LOG_VERSION}")

# Project setup
project(caps-log
LANGUAGES CXX
)
project(caps-log LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Expand All @@ -18,24 +27,27 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
include(FetchContent)

# -------------------------- Fetech ftxui ------------------------------- #

set(FETCHCONTENT_UPDATES_DISCONNECTED TRUE)
FetchContent_Declare(ftxui
GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui
GIT_TAG v5.0.0
)
FetchContent_Declare(
ftxui
GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui
GIT_TAG v5.0.0)
FetchContent_GetProperties(ftxui)
if(NOT ftxui_POPULATED)
FetchContent_Populate(ftxui)
add_subdirectory(${ftxui_SOURCE_DIR} ${ftxui_BINARY_DIR} EXCLUDE_FROM_ALL)
FetchContent_Populate(ftxui)
add_subdirectory(${ftxui_SOURCE_DIR} ${ftxui_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()

# --------------------------------- boost -------------------------------- #
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost 1.40 COMPONENTS program_options REQUIRED)
set(Boost_USE_STATIC_LIBS ON)
find_package(
Boost 1.40
COMPONENTS program_options
REQUIRED)

if(NOT Boost_FOUND)
message(FATAL_ERROR "Boost Not found")
message(FATAL_ERROR "Boost Not found")
endif()

# ------------------------------- OpenSSL -------------------------------- #
Expand All @@ -49,23 +61,23 @@ set(BUILD_SHARED_LIBS OFF)
find_package(LibGit2 3 REQUIRED)

# ------------------------------- Fetch FMT ------------------------------ #
FetchContent_Declare(fmt
GIT_REPOSITORY https://github.com/fmtlib/fmt
GIT_TAG 9.1.0
)

FetchContent_Declare(
fmt
GIT_REPOSITORY https://github.com/fmtlib/fmt
GIT_TAG 9.1.0)
FetchContent_GetProperties(fmt)
if(NOT fmt_POPULATED)
FetchContent_Populate(fmt)
add_subdirectory(${fmt_SOURCE_DIR} ${fmt_BINARY_DIR} EXCLUDE_FROM_ALL)
FetchContent_Populate(fmt)
add_subdirectory(${fmt_SOURCE_DIR} ${fmt_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()

# --------------------------------- tests -------------------------------- #

if(${CAPS_LOG_BUILD_TESTS})
message("Tests will be built")
include(CTest)
add_subdirectory(./test)
message("Tests will be built")
include(CTest)
add_subdirectory(./test)
endif()

# ------------------------------ caps-log -------------------------------- #
Expand Down
95 changes: 45 additions & 50 deletions source/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,56 +1,51 @@
add_executable(
caps-log

config.cpp
config.hpp
main.cpp

./log/annual_log_data.cpp
./log/annual_log_data.hpp
./log/local_log_repository.cpp
./log/local_log_repository.hpp
./log/log_file.cpp
./log/log_file.hpp
./log/log_repository_base.hpp
./log/log_repository_crypto_applier.cpp
./log/log_repository_crypto_applier.hpp

./utils/crypto.cpp
./utils/crypto.hpp
./utils/date.hpp
./utils/string.hpp
./utils/task_executor.hpp
./utils/git_repo.cpp
./utils/git_repo.hpp

./view/annual_view.cpp
./view/annual_view.hpp
./view/annual_view_base.hpp
./view/calendar_component.cpp
./view/calendar_component.hpp
./view/ftxui_ext/extended_containers.cpp
./view/ftxui_ext/extended_containers.hpp
./view/input_handler.hpp
./view/preview.cpp
./view/preview.hpp
./view/promptable.cpp
./view/promptable.hpp
)
caps-log
config.cpp
config.hpp
main.cpp
./log/annual_log_data.cpp
./log/annual_log_data.hpp
./log/local_log_repository.cpp
./log/local_log_repository.hpp
./log/log_file.cpp
./log/log_file.hpp
./log/log_repository_base.hpp
./log/log_repository_crypto_applier.cpp
./log/log_repository_crypto_applier.hpp
./utils/crypto.cpp
./utils/crypto.hpp
./utils/date.hpp
./utils/string.hpp
./utils/task_executor.hpp
./utils/git_repo.cpp
./utils/git_repo.hpp
./view/annual_view.cpp
./view/annual_view.hpp
./view/annual_view_base.hpp
./view/calendar_component.cpp
./view/calendar_component.hpp
./view/ftxui_ext/extended_containers.cpp
./view/ftxui_ext/extended_containers.hpp
./view/input_handler.hpp
./view/preview.cpp
./view/preview.hpp
./view/promptable.cpp
./view/promptable.hpp)

target_include_directories(caps-log PRIVATE ./ ${CMAKE_CURRENT_BINARY_DIR})


target_link_libraries(caps-log
ftxui::screen
ftxui::dom
ftxui::component
fmt::fmt
Boost::program_options
OpenSSL::Crypto
OpenSSL::SSL
${LIBGIT2_LIBRARIES}
)

target_compile_definitions(caps-log PRIVATE CAPS_LOG_VERSION_STRING="${CAPS_LOG_VERSION}")
target_link_libraries(
caps-log
ftxui::screen
ftxui::dom
ftxui::component
fmt::fmt
Boost::program_options
OpenSSL::Crypto
OpenSSL::SSL
${LIBGIT2_LIBRARIES})

target_compile_definitions(
caps-log PRIVATE CAPS_LOG_VERSION_STRING="${CAPS_LOG_VERSION}")

install(TARGETS caps-log DESTINATION "bin")
83 changes: 39 additions & 44 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,60 +3,55 @@
set(INSTALL_GTEST OFF)

FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip
googletest
URL https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip
)

# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
set(gtest_force_shared_crt
ON
CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)

# --------------------------------- tests -------------------------------- #


add_executable(
tests
./config_test.cpp
./controler_test.cpp
./local_log_repository_test.cpp
./log_entry_test.cpp
./annual_log_data_test.cpp
./calendar_component_test.cpp

./../source/config.cpp
./../source/log/log_file.cpp
./../source/log/log_repository_crypto_applier.cpp
./../source/log/local_log_repository.cpp
./../source/log/annual_log_data.cpp
./../source/view/calendar_component.cpp
./../source/view/ftxui_ext/extended_containers.cpp
./../source/utils/crypto.cpp
./../source/utils/git_repo.cpp
)
tests
./config_test.cpp
./controler_test.cpp
./local_log_repository_test.cpp
./log_entry_test.cpp
./annual_log_data_test.cpp
./calendar_component_test.cpp
./../source/config.cpp
./../source/log/log_file.cpp
./../source/log/log_repository_crypto_applier.cpp
./../source/log/local_log_repository.cpp
./../source/log/annual_log_data.cpp
./../source/view/calendar_component.cpp
./../source/view/ftxui_ext/extended_containers.cpp
./../source/utils/crypto.cpp
./../source/utils/git_repo.cpp)

target_link_libraries(
tests
gtest_main
gmock_main
ftxui::screen
ftxui::dom
ftxui::component
fmt::fmt
Boost::program_options
OpenSSL::Crypto
OpenSSL::SSL
${LIBGIT2_LIBRARIES}
)

target_include_directories(
tests
PRIVATE
../source/
${CMAKE_CURRENT_BINARY_DIR}
)

target_compile_definitions(tests PRIVATE CAPS_LOG_TEST_DATA_DIR="${CMAKE_SOURCE_DIR}/test/data")
target_compile_definitions(tests PRIVATE CAPS_LOG_VERSION_STRING="${CAPS_LOG_VERSION}")
tests
gtest_main
gmock_main
ftxui::screen
ftxui::dom
ftxui::component
fmt::fmt
Boost::program_options
OpenSSL::Crypto
OpenSSL::SSL
${LIBGIT2_LIBRARIES})

target_include_directories(tests PRIVATE ../source/ ${CMAKE_CURRENT_BINARY_DIR})

target_compile_definitions(
tests PRIVATE CAPS_LOG_TEST_DATA_DIR="${CMAKE_SOURCE_DIR}/test/data")
target_compile_definitions(
tests PRIVATE CAPS_LOG_VERSION_STRING="${CAPS_LOG_VERSION}")

include(GoogleTest)
gtest_discover_tests(tests)

0 comments on commit 8a1e1e0

Please sign in to comment.