From fa346ace4774e4ac66644be6d11908a80f0151b6 Mon Sep 17 00:00:00 2001 From: Luke Street Date: Wed, 3 Aug 2022 18:16:30 -0400 Subject: [PATCH] Support for emscripten --- atdna/atdnaConfig.cmake.in | 8 +++++--- atdna/atdnaHelpers.cmake | 18 ++++++++++++++---- include/athena/Dir.hpp | 2 ++ include/athena/Global.hpp | 2 +- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/atdna/atdnaConfig.cmake.in b/atdna/atdnaConfig.cmake.in index 4e89864..e045ec4 100644 --- a/atdna/atdnaConfig.cmake.in +++ b/atdna/atdnaConfig.cmake.in @@ -1,8 +1,8 @@ # - Config file for the atdna package - + # Compute paths get_filename_component(ATDNA_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) - + # Our library dependencies (contains definitions for IMPORTED targets) if(NOT TARGET atdna AND NOT atdna_BINARY_DIR) include("${ATDNA_CMAKE_DIR}/atdnaTargets.cmake") @@ -26,7 +26,9 @@ function(atdna out) get_property(incdirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES) set(inccli "") foreach(dir ${incdirs}) - list(APPEND inccli "-I${dir}") + if (NOT dir MATCHES ".*emscripten.*") + list(APPEND inccli "-I${dir}") + endif() endforeach() # Get local defines for atdna diff --git a/atdna/atdnaHelpers.cmake b/atdna/atdnaHelpers.cmake index 798d882..a3e7016 100644 --- a/atdna/atdnaHelpers.cmake +++ b/atdna/atdnaHelpers.cmake @@ -92,6 +92,18 @@ function(atdna out incdirs cdefs) list(APPEND ins_impdeps ${CMAKE_CURRENT_SOURCE_DIR}/${arg}) endforeach() + set(inccli "") + foreach(dir ${incdirs}) + if (NOT dir MATCHES ".*emscripten.*") + list(APPEND inccli "-I${dir}") + endif() + endforeach() + + set(cdefcli "") + foreach(def ${cdefs}) + list(APPEND cdefcli "-D${def}") + endforeach() + # MS extra unset(extraargs) if(MSVC) @@ -124,8 +136,7 @@ function(atdna out incdirs cdefs) # Use Ninja's DEPFILE parser in cooperation with atdna add_custom_command(OUTPUT ${out} COMMAND $ ARGS ${extraargs} -o ${out_rel} -MD -MT ${out_rel} -MF ${out_rel}.d - "$<$:-I$>" - "$<$:-D$>" + ${inccli} ${cdefcli} "-I${athena_SOURCE_DIR}/include" ${ins} DEPENDS atdna ${ins} IMPLICIT_DEPENDS ${ins_impdeps} DEPFILE "${CMAKE_CURRENT_BINARY_DIR}/${out}.d" @@ -136,8 +147,7 @@ function(atdna out incdirs cdefs) # Use CMake's built-in dependency scanner for makefile targets add_custom_command(OUTPUT ${out} COMMAND $ ARGS ${extraargs} -o ${out_rel} - "$<$:-I$>" - "$<$:-D$>" + ${inccli} ${cdefcli} "-I${athena_SOURCE_DIR}/include" ${ins} DEPENDS atdna ${ins} IMPLICIT_DEPENDS ${ins_impdeps} WORKING_DIRECTORY ${CMAKE_BINARY_DIR} diff --git a/include/athena/Dir.hpp b/include/athena/Dir.hpp index ec34eda..a95e57c 100644 --- a/include/athena/Dir.hpp +++ b/include/athena/Dir.hpp @@ -4,6 +4,8 @@ #if _WIN32 using mode_t = int; +#else +#include #endif namespace athena { diff --git a/include/athena/Global.hpp b/include/athena/Global.hpp index 437d59b..3fa5a27 100644 --- a/include/athena/Global.hpp +++ b/include/athena/Global.hpp @@ -47,7 +47,7 @@ #endif // clang-format on -#if defined(GEKKO) || defined(__SWITCH__) +#if defined(GEKKO) || defined(__SWITCH__) || defined(EMSCRIPTEN) #include "gekko_support.h" typedef struct stat atStat64_t; #define atStat64 stat