diff options
Diffstat (limited to 'libs/acpi')
| -rw-r--r-- | libs/acpi/CMakeLists.txt | 64 |
1 files changed, 51 insertions, 13 deletions
diff --git a/libs/acpi/CMakeLists.txt b/libs/acpi/CMakeLists.txt index 55d5b54..b0fc48f 100644 --- a/libs/acpi/CMakeLists.txt +++ b/libs/acpi/CMakeLists.txt @@ -6,17 +6,35 @@ project("acpi" LANGUAGES ASM CXX ) -add_library("acpi" STATIC) -add_library("libs::acpi" ALIAS "acpi") +include("CTest") -target_include_directories("acpi" PUBLIC - "${CMAKE_CURRENT_SOURCE_DIR}" -) +#[============================================================================[ +# External Dependencies +#]============================================================================] -file(GLOB_RECURSE ACPI_HEADERS - RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} - "acpi/*.hpp" -) +include("FetchContent") + +if (BUILD_TESTING) + FetchContent_Declare( + "Catch2" + URL "https://github.com/catchorg/Catch2/archive/refs/tags/v3.7.1.tar.gz" + URL_HASH "SHA256=c991b247a1a0d7bb9c39aa35faf0fe9e19764213f28ffba3109388e62ee0269c" + EXCLUDE_FROM_ALL + FIND_PACKAGE_ARGS + ) + + FetchContent_MakeAvailable("Catch2") + + find_package("Catch2") + include("Catch") +endif() + +#[============================================================================[ +# Library +#]============================================================================] + +add_library("acpi" STATIC) +add_library("acpi::lib" ALIAS "acpi") target_sources("acpi" PRIVATE "acpi/common/checksum.cpp" @@ -27,6 +45,11 @@ target_sources("acpi" PRIVATE "acpi/pointers.cpp" ) +file(GLOB_RECURSE ACPI_HEADERS + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + "acpi/*.hpp" +) + target_sources("acpi" PUBLIC FILE_SET HEADERS BASE_DIRS "acpi" @@ -34,11 +57,23 @@ target_sources("acpi" PUBLIC ${ACPI_HEADERS} ) +target_include_directories("acpi" PUBLIC + "${CMAKE_CURRENT_SOURCE_DIR}" +) + target_link_libraries("acpi" PUBLIC - "libs::kstd" + "kstd::lib" ) -if(NOT CMAKE_CROSSCOMPILING) +set_target_properties("acpi" PROPERTIES + VERIFY_INTERFACE_HEADER_SETS YES +) + +#[============================================================================[ +# Tests +#]============================================================================] + +if(BUILD_TESTING) find_program(IASL_EXE NAMES "iasl" REQUIRED) set(TEST_TABLES @@ -61,7 +96,10 @@ if(NOT CMAKE_CROSSCOMPILING) set_source_files_properties("test_data/tables.S" PROPERTIES OBJECT_DEPENDS "${GENERATED_TABLE_BLOBS}") - add_executable("acpi_tests" + add_executable("acpi_tests") + add_executable("acpi::tests" ALIAS "acpi_tests") + + target_sources("acpi_tests" PRIVATE "acpi/common/table_header.test.cpp" "acpi/data/madt.test.cpp" "acpi/data/rsdt.test.cpp" @@ -77,7 +115,7 @@ if(NOT CMAKE_CROSSCOMPILING) target_link_libraries("acpi_tests" PRIVATE "Catch2::Catch2WithMain" - "libs::acpi" + "acpi::lib" ) set_target_properties("acpi_tests" PROPERTIES |
