35 lines
1.2 KiB
CMake
35 lines
1.2 KiB
CMake
|
|
# Will add_directory the given path only if the directory exists. If the directory doesn't exist,
|
||
|
|
# it will look for either arm64-android or x86_64-android variants of the path. If it finds either, or both,
|
||
|
|
# then it will add the newer of the two.
|
||
|
|
function(try_add_subdir path)
|
||
|
|
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${path}")
|
||
|
|
add_subdirectory(${path})
|
||
|
|
endif()
|
||
|
|
|
||
|
|
set(path_arm64 ${path}-arm64-android)
|
||
|
|
if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${path_arm64}")
|
||
|
|
set(has_arm64 TRUE)
|
||
|
|
else()
|
||
|
|
set(has_arm64 FALSE)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
set(path_x64 ${path}-x86_64-android)
|
||
|
|
if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${path_x64}")
|
||
|
|
set(has_x64 TRUE)
|
||
|
|
else()
|
||
|
|
set(has_x64 FALSE)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
if (${has_arm64} AND ${has_x64})
|
||
|
|
if ("${CMAKE_CURRENT_SOURCE_DIR}/${path_arm64}/CMakeLists.txt" IS_NEWER_THAN
|
||
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/${path_x64}/CMakeLists.txt")
|
||
|
|
add_subdirectory(${path_arm64})
|
||
|
|
else()
|
||
|
|
add_subdirectory(${path_x64})
|
||
|
|
endif()
|
||
|
|
elseif(${has_arm64})
|
||
|
|
add_subdirectory(${path_arm64})
|
||
|
|
elseif(${has_x64})
|
||
|
|
add_subdirectory(${path_x64})
|
||
|
|
endif()
|
||
|
|
endfunction()
|