Split cmake files between directories

This commit is contained in:
Eugen Wissner 2025-03-21 01:04:57 +01:00
parent 226dfdbc02
commit 9bec46cc1f
Signed by: belka
GPG Key ID: A27FDC1E8EE902C0
7 changed files with 51 additions and 25 deletions

View File

@ -7,25 +7,14 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_CXX_STANDARD 17)
find_package(Boost CONFIG COMPONENTS unit_test_framework REQUIRED)
add_library(backend
add_library(katja
katja/database.cpp include/katja/database.hpp
katja/sbo.cpp include/katja/sbo.hpp
katja/repository.cpp include/katja/repository.hpp
)
target_include_directories(backend PRIVATE include ${Boost_INCLUDE_DIR})
add_executable(katja cli/main.cpp)
target_include_directories(katja PRIVATE include ${Boost_INCLUDE_DIR})
target_link_libraries(katja LINK_PUBLIC backend)
include_directories(include ${Boost_INCLUDE_DIR})
add_subdirectory(cli)
if(BUILD_TESTING)
add_executable(tester tests/tester.cpp)
target_include_directories(tester PRIVATE include ${Boost_INCLUDE_DIR})
target_compile_definitions(tester PRIVATE "BOOST_TEST_DYN_LINK=1")
target_link_libraries(tester LINK_PRIVATE backend Boost::unit_test_framework)
add_test(NAME tester COMMAND tester)
add_subdirectory(tests)
endif()

4
cli/CMakeLists.txt Normal file
View File

@ -0,0 +1,4 @@
add_executable(katja-cli main.cpp)
target_include_directories(katja-cli PRIVATE ${Boost_INCLUDE_DIR})
target_link_libraries(katja-cli LINK_PUBLIC katja)
set_target_properties(katja-cli PROPERTIES RUNTIME_OUTPUT_NAME katja)

View File

@ -45,7 +45,7 @@ namespace katja
database_package::database_package(std::string&& name, std::string&& version,
std::string&& architecture, std::string&& build_tag)
: name(name), version(version), architecture(version), build_tag(build_tag)
: name(name), version(version), architecture(architecture), build_tag(build_tag)
{
}

15
tests/CMakeLists.txt Normal file
View File

@ -0,0 +1,15 @@
find_package(Boost CONFIG COMPONENTS unit_test_framework REQUIRED)
file(GLOB KATJA_TEST_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
foreach(test_source ${KATJA_TEST_SOURCES})
get_filename_component(test_name ${test_source} NAME_WE)
set(tester ${test_name}-tester)
add_executable(${tester} ${test_source})
target_compile_definitions(${tester} PRIVATE "BOOST_TEST_DYN_LINK=1")
target_link_libraries(${tester} LINK_PRIVATE katja Boost::unit_test_framework)
add_test(NAME ${test_name} COMMAND ${tester})
endforeach()

14
tests/database.cpp Normal file
View File

@ -0,0 +1,14 @@
#define BOOST_TEST_MODULE database tests
#include <boost/test/unit_test.hpp>
#include "katja/database.hpp"
BOOST_AUTO_TEST_CASE(generate_package_identifier)
{
katja::database_package actual("libarchive-3.7.8-i586-1_slack15.0");
BOOST_TEST(actual.name == "libarchive");
BOOST_TEST(actual.version == "3.7.8");
BOOST_TEST(actual.architecture == "i586");
BOOST_TEST(actual.build_tag == "1_slack15.0");
}

13
tests/repository.cpp Normal file
View File

@ -0,0 +1,13 @@
#define BOOST_TEST_MODULE repository tests
#include <boost/test/unit_test.hpp>
#include "katja/repository.hpp"
BOOST_AUTO_TEST_CASE(construct_valid_database_package)
{
katja::package_identifier given{ "libarchive", "3.7.8", "i586", "slackware" };
std::string actual = given.to_string();
std::string expected = "libarchive;3.7.8;i586;slackware";
BOOST_TEST(actual == expected);
}

View File

@ -1,9 +0,0 @@
#define BOOST_TEST_MODULE unit tests
#include <boost/test/unit_test.hpp>
#include "katja/repository.hpp"
BOOST_AUTO_TEST_CASE(construct_valid_database_package)
{
BOOST_TEST(true);
}