Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 8 additions & 17 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
name: CMake

on: [push]
on: [push, pull_request]

env:
BUILD_TYPE: Release
BUILD_TYPE: Debug

jobs:
Build_And_Test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Fetch submodules
run: git submodule update --init --recursive
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build
Expand All @@ -23,20 +22,12 @@ jobs:

- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLOGGER_BUILD_TESTS=ON -DLOGGER_BUILD_EXAMPLES=ON

- name: Build
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE -j
run: cmake --build build --config $BUILD_TYPE -j

- name: Run Tests
working-directory: ${{runner.workspace}}/build/out/bin/x64/Release
shell: bash
run: ./Logger.GTest

- name: Run Examples
working-directory: ${{runner.workspace}}/build/out/bin/x64/Release
shell: bash
run: ./Example.Standard
run: ctest --test-dir build --output-on-failure
21 changes: 11 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,31 +34,32 @@ project_settings_configure_install_layout(
PROJECT_NAME ${PROJECT_NAME}
INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}
)
add_subdirectory(src)
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/src")

if(LOGGER_BUILD_TESTS)
include(CTest)
enable_testing()
add_subdirectory(tests)
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/tests")
endif()
if(LOGGER_BUILD_EXAMPLES)
add_subdirectory(examples)
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/examples")
endif()

configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/LoggerConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/LoggerConfig.cmake
INSTALL_DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/cmake/Logger
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/LoggerConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/LoggerConfig.cmake"
INSTALL_DESTINATION "${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/cmake/Logger"
)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/LoggerConfigVersion.cmake
"${CMAKE_CURRENT_BINARY_DIR}/LoggerConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)

if(LOGGER_ENABLE_INSTALL)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/LoggerConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/LoggerConfigVersion.cmake
DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/cmake/Logger
"${CMAKE_CURRENT_BINARY_DIR}/LoggerConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/LoggerConfigVersion.cmake"
DESTINATION "${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/cmake/Logger"
)
endif()
17 changes: 7 additions & 10 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@ file(GLOB_RECURSE headers CONFIGURE_DEPENDS "*.hpp")
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "*.cpp")

# Create library
add_library(${targetName} STATIC
${headers}
${sources}
)
add_library(${targetName} STATIC ${headers} ${sources})
add_library(Logger::Logger ALIAS ${targetName})

target_compile_features(${targetName} PUBLIC cxx_std_20)
Expand All @@ -33,17 +30,17 @@ target_compile_definitions(${targetName} PUBLIC LOGVERSION_PATCH=0)
if(LOGGER_ENABLE_INSTALL)
install(TARGETS ${targetName}
EXPORT LoggerTargets
ARCHIVE DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG}
LIBRARY DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG}
RUNTIME DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_BINDIR}/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG}
ARCHIVE DESTINATION "${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG}"
LIBRARY DESTINATION "${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG}"
RUNTIME DESTINATION "${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_BINDIR}/${LOGGER_INSTALL_ARCH}/${LOGGER_INSTALL_CONFIG}"
)
install(
DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/include/Logger
DESTINATION ${LOGGER_INSTALL_BASE}/include
DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/include/Logger"
DESTINATION "${LOGGER_INSTALL_BASE}/include"
)
install(EXPORT LoggerTargets
FILE LoggerTargets.cmake
NAMESPACE Logger::
DESTINATION ${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/cmake/Logger
DESTINATION "${LOGGER_INSTALL_BASE}/${CMAKE_INSTALL_LIBDIR}/cmake/Logger"
)
endif()
16 changes: 9 additions & 7 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
set(targetName Logger.GTest)

add_executable(${targetName}
${CMAKE_CURRENT_LIST_DIR}/main.gtest.cpp
${CMAKE_CURRENT_LIST_DIR}/LogEntry.gtest.cpp
${CMAKE_CURRENT_LIST_DIR}/LogLevel.gtest.cpp
${CMAKE_CURRENT_LIST_DIR}/LogConfig.gtest.cpp
${CMAKE_CURRENT_LIST_DIR}/LogOutput.gtest.cpp
${CMAKE_CURRENT_LIST_DIR}/Profiler.gtest.cpp
"${CMAKE_CURRENT_LIST_DIR}/main.gtest.cpp"
"${CMAKE_CURRENT_LIST_DIR}/LogEntry.gtest.cpp"
"${CMAKE_CURRENT_LIST_DIR}/LogLevel.gtest.cpp"
"${CMAKE_CURRENT_LIST_DIR}/LogConfig.gtest.cpp"
"${CMAKE_CURRENT_LIST_DIR}/LogOutput.gtest.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Profiler.gtest.cpp"
)

# Link to required libraries
Expand All @@ -18,4 +18,6 @@ set_project_warnings(${targetName}) # Which warnings to enable
set_compile_options(${targetName}) # Which extra compiler flags to enable
set_output_directory(${targetName}) # Set the output directory of the library

add_test(NAME Logger.UnitTests COMMAND ${targetName})
# Add tests
include(GoogleTest)
gtest_discover_tests(${targetName})