# This file is automatically generated from cmake.toml - DO NOT EDIT # See https://github.com/build-cpp/cmkr for more information cmake_minimum_required(VERSION 3.15) if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) message(FATAL_ERROR "In-tree builds are not supported. Run CMake from a separate directory: cmake -B build") endif() set(CMKR_ROOT_PROJECT OFF) if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) set(CMKR_ROOT_PROJECT ON) # Bootstrap cmkr and automatically regenerate CMakeLists.txt include(".cmake/cmkr.cmake" OPTIONAL RESULT_VARIABLE CMKR_INCLUDE_RESULT) if(CMKR_INCLUDE_RESULT) cmkr() endif() # Enable folder support set_property(GLOBAL PROPERTY USE_FOLDERS ON) # Create a configure-time dependency on cmake.toml to improve IDE support set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS cmake.toml) endif() # Options option(SHADOWSYSCALL_BUILD_TESTS "" OFF) option(SHADOWSYSCALL_BUILD_EXAMPLES "" OFF) project(shadowsyscall LANGUAGES CXX ) include(FetchContent) # Fix warnings about DOWNLOAD_EXTRACT_TIMESTAMP if(POLICY CMP0135) cmake_policy(SET CMP0135 NEW) endif() if(SHADOWSYSCALL_BUILD_TESTS) # shadowsyscall-build-tests message(STATUS "Fetching GTest (v1.15.2)...") FetchContent_Declare(GTest GIT_REPOSITORY "https://github.com/google/googletest" GIT_TAG v1.15.2 GIT_SHALLOW ON ) FetchContent_MakeAvailable(GTest) endif() if(SHADOWSYSCALL_BUILD_EXAMPLES) # shadowsyscall-build-examples # Subdirectory: examples set(CMKR_CMAKE_FOLDER ${CMAKE_FOLDER}) if(CMAKE_FOLDER) set(CMAKE_FOLDER "${CMAKE_FOLDER}/examples") else() set(CMAKE_FOLDER examples) endif() add_subdirectory(examples) set(CMAKE_FOLDER ${CMKR_CMAKE_FOLDER}) endif() # Target: shadowsyscall add_library(shadowsyscall INTERFACE) target_compile_features(shadowsyscall INTERFACE cxx_std_20 ) target_include_directories(shadowsyscall INTERFACE "include/" ) # Target: shadowsyscall-tests if(SHADOWSYSCALL_BUILD_TESTS) # shadowsyscall-build-tests set(shadowsyscall-tests_SOURCES cmake.toml "tests/address.cpp" "tests/cache.cpp" "tests/dll_export.cpp" "tests/forwarded_exports.cpp" "tests/nt_memory_allocator.cpp" "tests/shared_data.cpp" "tests/syscaller.cpp" ) add_executable(shadowsyscall-tests) target_sources(shadowsyscall-tests PRIVATE ${shadowsyscall-tests_SOURCES}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${shadowsyscall-tests_SOURCES}) target_compile_features(shadowsyscall-tests PRIVATE cxx_std_20 ) target_include_directories(shadowsyscall-tests PRIVATE "include/" ) target_link_libraries(shadowsyscall-tests PRIVATE shadowsyscall GTest::gtest_main ) get_directory_property(CMKR_VS_STARTUP_PROJECT DIRECTORY ${PROJECT_SOURCE_DIR} DEFINITION VS_STARTUP_PROJECT) if(NOT CMKR_VS_STARTUP_PROJECT) set_property(DIRECTORY ${PROJECT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT shadowsyscall-tests) endif() endif()