From 2a1ee6a91bd539bb583f3214a9e1868464bdad44 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Tue, 4 Jun 2024 18:26:45 -0400 Subject: [PATCH] Fixes --- CMakeLists.txt | 29 ++++++++++++++++++----------- qemu/CMakeLists.txt | 7 ++++++- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ad4b3c..aecd4c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,17 +7,24 @@ project(trampoline) add_library(trampoline-headers INTERFACE) target_include_directories(trampoline-headers INTERFACE include) -# Check Architecture -include(CheckSymbolExists) -check_symbol_exists("__aarch64__" "" USE_NATIVE_TRAMPOLINE) -check_symbol_exists("__x86_64__" "" USE_QEMU_TRAMPOLINE) - # Build -if(USE_NATIVE_TRAMPOLINE) - add_subdirectory(native) -elseif(USE_QEMU_TRAMPOLINE) - add_subdirectory(qemu) - target_compile_definitions(trampoline-headers INTERFACE MCPI_USE_QEMU) +if(NOT TRAMPOLINE_HEADERS_ONLY) + # Check Architecture + include(CheckSymbolExists) + check_symbol_exists("__aarch64__" "" USE_NATIVE_TRAMPOLINE) + check_symbol_exists("__x86_64__" "" USE_QEMU_TRAMPOLINE) + + # Include Correct Sub-Project + if(USE_NATIVE_TRAMPOLINE) + add_subdirectory(native) + elseif(USE_QEMU_TRAMPOLINE) + add_subdirectory(qemu) + target_compile_definitions(trampoline-headers INTERFACE MCPI_USE_QEMU) + else() + message(FATAL_ERROR "Unsupported Architecture") + endif() else() - message(FATAL_ERROR "Unsupported Architecture") + # No-Op Install Function + function(install_trampoline) + endfunction() endif() \ No newline at end of file diff --git a/qemu/CMakeLists.txt b/qemu/CMakeLists.txt index 94ad4b6..468a5c1 100644 --- a/qemu/CMakeLists.txt +++ b/qemu/CMakeLists.txt @@ -1,5 +1,10 @@ project(qemu) +# Avoid Warning About DOWNLOAD_EXTRACT_TIMESTAMP +if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.24.0) + cmake_policy(SET CMP0135 NEW) +endif() + # Archive if(NOT DEFINED TRAMPOLINE_QEMU_ARCHIVE) message(FATAL_ERROR "Missing QEMU Archive") @@ -51,7 +56,7 @@ ExternalProject_Add(qemu # Install function(install_trampoline bin_dir legal_dir) ExternalProject_Get_property(qemu BINARY_DIR) - install(PROGRAMS "${BINARY_DIR}/qemu-arm" DESTINATION "${bin_dir}/trampoline") + install(PROGRAMS "${BINARY_DIR}/qemu-arm" DESTINATION "${bin_dir}" RENAME "trampoline") # License ExternalProject_Get_property(qemu SOURCE_DIR) install(FILES "${SOURCE_DIR}/COPYING" DESTINATION "${legal_dir}/qemu")