aboutsummaryrefslogtreecommitdiff
path: root/libs/acpi/CMakeLists.txt
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-04-15 08:55:03 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-04-15 08:55:03 +0200
commit1fa31688a0e237dec1170dcea9e8f0a0571a25e5 (patch)
tree47670a4f05f50d45be078e6429950ff5c0b3ca48 /libs/acpi/CMakeLists.txt
parenteacc1becd1308a01a7ffcddf7c8910c8dc708939 (diff)
downloadteachos-1fa31688a0e237dec1170dcea9e8f0a0571a25e5.tar.xz
teachos-1fa31688a0e237dec1170dcea9e8f0a0571a25e5.zip
acpi: add basic MADT tests
Diffstat (limited to 'libs/acpi/CMakeLists.txt')
-rw-r--r--libs/acpi/CMakeLists.txt34
1 files changed, 34 insertions, 0 deletions
diff --git a/libs/acpi/CMakeLists.txt b/libs/acpi/CMakeLists.txt
index b8face4..8ace42d 100644
--- a/libs/acpi/CMakeLists.txt
+++ b/libs/acpi/CMakeLists.txt
@@ -1,3 +1,11 @@
+cmake_minimum_required(VERSION "3.27.0")
+
+project("acpi"
+ DESCRIPTION "An ACPI parsing library"
+ VERSION "0.0.1"
+ LANGUAGES ASM CXX
+)
+
add_library("acpi" STATIC)
add_library("libs::acpi" ALIAS "acpi")
@@ -29,8 +37,34 @@ target_link_libraries("acpi" PUBLIC
)
if(NOT CMAKE_CROSSCOMPILING)
+ find_program(IASL_EXE NAMES "iasl" REQUIRED)
+
+ set(TEST_TABLES
+ "basic_madt"
+ "basic_rsdt"
+ )
+
+ foreach(TABLE IN LISTS TEST_TABLES)
+ add_custom_command(OUTPUT "test_data/${TABLE}.aml"
+ COMMAND "${IASL_EXE}" -p "test_data/${TABLE}.aml" "${CMAKE_CURRENT_SOURCE_DIR}/test_data/${TABLE}.asl"
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/test_data/${TABLE}.asl"
+ COMMENT "Compiling test_data/${TABLE}.asl"
+ VERBATIM
+ )
+ list(APPEND GENERATED_TABLE_BLOBS "${CMAKE_CURRENT_BINARY_DIR}/test_data/${TABLE}.aml")
+ endforeach()
+
+ set_source_files_properties("test_data/tables.S" PROPERTIES OBJECT_DEPENDS "${GENERATED_TABLE_BLOBS}")
+
add_executable("acpi_tests"
+ "acpi/madt.test.cpp"
"acpi/pointers.test.cpp"
+
+ "test_data/tables.S"
+ )
+
+ target_include_directories("acpi_tests" PRIVATE
+ "${CMAKE_CURRENT_BINARY_DIR}/test_data"
)
target_link_libraries("acpi_tests" PRIVATE