Split cmake files between directories
This commit is contained in:
parent
226dfdbc02
commit
9bec46cc1f
@ -7,25 +7,14 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
|
|||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
|
||||||
find_package(Boost CONFIG COMPONENTS unit_test_framework REQUIRED)
|
add_library(katja
|
||||||
|
|
||||||
add_library(backend
|
|
||||||
katja/database.cpp include/katja/database.hpp
|
katja/database.cpp include/katja/database.hpp
|
||||||
katja/sbo.cpp include/katja/sbo.hpp
|
katja/sbo.cpp include/katja/sbo.hpp
|
||||||
katja/repository.cpp include/katja/repository.hpp
|
katja/repository.cpp include/katja/repository.hpp
|
||||||
)
|
)
|
||||||
target_include_directories(backend PRIVATE include ${Boost_INCLUDE_DIR})
|
include_directories(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)
|
|
||||||
|
|
||||||
|
add_subdirectory(cli)
|
||||||
if(BUILD_TESTING)
|
if(BUILD_TESTING)
|
||||||
add_executable(tester tests/tester.cpp)
|
add_subdirectory(tests)
|
||||||
|
|
||||||
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)
|
|
||||||
endif()
|
endif()
|
||||||
|
4
cli/CMakeLists.txt
Normal file
4
cli/CMakeLists.txt
Normal 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)
|
@ -45,7 +45,7 @@ namespace katja
|
|||||||
|
|
||||||
database_package::database_package(std::string&& name, std::string&& version,
|
database_package::database_package(std::string&& name, std::string&& version,
|
||||||
std::string&& architecture, std::string&& build_tag)
|
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
15
tests/CMakeLists.txt
Normal 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
14
tests/database.cpp
Normal 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
13
tests/repository.cpp
Normal 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);
|
||||||
|
}
|
@ -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);
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user