From 5955fed8d903a659920386e61427aa7509221291 Mon Sep 17 00:00:00 2001 From: zjyhjqs Date: Sun, 26 May 2024 19:04:40 +0800 Subject: fix: apply `CMAKE_FIND_ROOT_PATH_MODE_*` to android --- xmake/modules/package/tools/cmake.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua index 7b8aef360..f63b7ca94 100644 --- a/xmake/modules/package/tools/cmake.lua +++ b/xmake/modules/package/tools/cmake.lua @@ -423,6 +423,13 @@ function _get_configs_for_android(package, configs, opt) table.insert(configs, "-DCMAKE_MAKE_PROGRAM=" .. make) end end + + -- avoid find and add system include/library path + -- @see https://github.com/xmake-io/xmake/issues/2037 + table.insert(configs, "-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=BOTH") + table.insert(configs, "-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH") + table.insert(configs, "-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH") + table.insert(configs, "-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER") end _get_configs_for_generic(package, configs, opt) end -- cgit v1.3.1 From 3f836b68c77f226fcfe4ab1623d3b0ab5d992d90 Mon Sep 17 00:00:00 2001 From: zjyhjqs Date: Sun, 26 May 2024 21:55:31 +0800 Subject: fix CMake `find_package` for config mode for all cross-compile platforms --- xmake/modules/package/tools/cmake.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua index f63b7ca94..df9306436 100644 --- a/xmake/modules/package/tools/cmake.lua +++ b/xmake/modules/package/tools/cmake.lua @@ -460,6 +460,7 @@ function _get_configs_for_appleos(package, configs, opt) envs.CMAKE_SYSTEM_NAME = "Darwin" end envs.CMAKE_OSX_ARCHITECTURES = package:arch() + envs.CMAKE_FIND_ROOT_PATH_MODE_PACKAGE = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_LIBRARY = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_INCLUDE = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_FRAMEWORK = "BOTH" @@ -491,6 +492,7 @@ function _get_configs_for_mingw(package, configs, opt) -- avoid find and add system include/library path -- @see https://github.com/xmake-io/xmake/issues/2037 envs.CMAKE_FIND_ROOT_PATH = sdkdir + envs.CMAKE_FIND_ROOT_PATH_MODE_PACKAGE = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_LIBRARY = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_INCLUDE = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "NEVER" @@ -585,6 +587,7 @@ function _get_configs_for_cross(package, configs, opt) -- avoid find and add system include/library path -- @see https://github.com/xmake-io/xmake/issues/2037 envs.CMAKE_FIND_ROOT_PATH = sdkdir + envs.CMAKE_FIND_ROOT_PATH_MODE_PACKAGE = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_LIBRARY = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_INCLUDE = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "NEVER" -- cgit v1.3.1 From 0d2d893015954d08539a7b948f60b1bb04512732 Mon Sep 17 00:00:00 2001 From: zjyhjqs Date: Sun, 26 May 2024 22:45:30 +0800 Subject: update cmake trybuild --- xmake/modules/private/action/trybuild/cmake.lua | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/xmake/modules/private/action/trybuild/cmake.lua b/xmake/modules/private/action/trybuild/cmake.lua index b600f3ef6..3a3b00788 100644 --- a/xmake/modules/private/action/trybuild/cmake.lua +++ b/xmake/modules/private/action/trybuild/cmake.lua @@ -134,6 +134,13 @@ function _get_configs_for_android(configs) if ndk_cxxstl then table.insert(configs, "-DANDROID_STL=" .. ndk_cxxstl) end + + -- avoid find and add system include/library path + -- @see https://github.com/xmake-io/xmake/issues/2037 + table.insert(configs, "-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=BOTH") + table.insert(configs, "-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH") + table.insert(configs, "-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH") + table.insert(configs, "-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER") end end @@ -195,8 +202,9 @@ function _get_configs_for_mingw(configs) -- avoid find and add system include/library path envs.CMAKE_FIND_ROOT_PATH = sdkdir envs.CMAKE_SYSROOT = sdkdir - envs.CMAKE_FIND_ROOT_PATH_MODE_LIBRARY = "ONLY" - envs.CMAKE_FIND_ROOT_PATH_MODE_INCLUDE = "ONLY" + envs.CMAKE_FIND_ROOT_PATH_MODE_PACKAGE = "BOTH" + envs.CMAKE_FIND_ROOT_PATH_MODE_LIBRARY = "BOTH" + envs.CMAKE_FIND_ROOT_PATH_MODE_INCLUDE = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "NEVER" -- avoid add -isysroot on macOS envs.CMAKE_OSX_SYSROOT = "" @@ -260,8 +268,9 @@ function _get_configs_for_cross(configs) -- avoid find and add system include/library path envs.CMAKE_FIND_ROOT_PATH = sdkdir envs.CMAKE_SYSROOT = sdkdir - envs.CMAKE_FIND_ROOT_PATH_MODE_LIBRARY = "ONLY" - envs.CMAKE_FIND_ROOT_PATH_MODE_INCLUDE = "ONLY" + envs.CMAKE_FIND_ROOT_PATH_MODE_PACKAGE = "BOTH" + envs.CMAKE_FIND_ROOT_PATH_MODE_LIBRARY = "BOTH" + envs.CMAKE_FIND_ROOT_PATH_MODE_INCLUDE = "BOTH" envs.CMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "NEVER" -- avoid add -isysroot on macOS envs.CMAKE_OSX_SYSROOT = "" -- cgit v1.3.1