1*90c8c64dSAndroid Build Coastguard Worker# Will add_directory the given path only if the directory exists. If the directory doesn't exist, 2*90c8c64dSAndroid Build Coastguard Worker# it will look for either arm64-android or x86_64-android variants of the path. If it finds either, or both, 3*90c8c64dSAndroid Build Coastguard Worker# then it will add the newer of the two. 4*90c8c64dSAndroid Build Coastguard Workerfunction(try_add_subdir path) 5*90c8c64dSAndroid Build Coastguard Worker if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${path}") 6*90c8c64dSAndroid Build Coastguard Worker add_subdirectory(${path}) 7*90c8c64dSAndroid Build Coastguard Worker endif() 8*90c8c64dSAndroid Build Coastguard Worker 9*90c8c64dSAndroid Build Coastguard Worker set(path_arm64 ${path}-arm64-android) 10*90c8c64dSAndroid Build Coastguard Worker if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${path_arm64}") 11*90c8c64dSAndroid Build Coastguard Worker set(has_arm64 TRUE) 12*90c8c64dSAndroid Build Coastguard Worker else() 13*90c8c64dSAndroid Build Coastguard Worker set(has_arm64 FALSE) 14*90c8c64dSAndroid Build Coastguard Worker endif() 15*90c8c64dSAndroid Build Coastguard Worker 16*90c8c64dSAndroid Build Coastguard Worker set(path_x64 ${path}-x86_64-android) 17*90c8c64dSAndroid Build Coastguard Worker if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${path_x64}") 18*90c8c64dSAndroid Build Coastguard Worker set(has_x64 TRUE) 19*90c8c64dSAndroid Build Coastguard Worker else() 20*90c8c64dSAndroid Build Coastguard Worker set(has_x64 FALSE) 21*90c8c64dSAndroid Build Coastguard Worker endif() 22*90c8c64dSAndroid Build Coastguard Worker 23*90c8c64dSAndroid Build Coastguard Worker if (${has_arm64} AND ${has_x64}) 24*90c8c64dSAndroid Build Coastguard Worker if ("${CMAKE_CURRENT_SOURCE_DIR}/${path_arm64}/CMakeLists.txt" IS_NEWER_THAN 25*90c8c64dSAndroid Build Coastguard Worker "${CMAKE_CURRENT_SOURCE_DIR}/${path_x64}/CMakeLists.txt") 26*90c8c64dSAndroid Build Coastguard Worker add_subdirectory(${path_arm64}) 27*90c8c64dSAndroid Build Coastguard Worker else() 28*90c8c64dSAndroid Build Coastguard Worker add_subdirectory(${path_x64}) 29*90c8c64dSAndroid Build Coastguard Worker endif() 30*90c8c64dSAndroid Build Coastguard Worker elseif(${has_arm64}) 31*90c8c64dSAndroid Build Coastguard Worker add_subdirectory(${path_arm64}) 32*90c8c64dSAndroid Build Coastguard Worker elseif(${has_x64}) 33*90c8c64dSAndroid Build Coastguard Worker add_subdirectory(${path_x64}) 34*90c8c64dSAndroid Build Coastguard Worker endif() 35*90c8c64dSAndroid Build Coastguard Workerendfunction()