aboutsummaryrefslogtreecommitdiff
path: root/cmake/scripts
diff options
context:
space:
mode:
authorfuzzard <fuzzard@kodi.tv>2023-05-24 16:53:32 +1000
committerfuzzard <fuzzard@kodi.tv>2023-06-06 09:52:38 +1000
commit76784adcfdfb58d2d23309e5bb1db4b1fc6b6d8a (patch)
treec0344cec219e2c417d434b5d7748601616c54aaa /cmake/scripts
parent07c63d13f3cd9bd41d7335ef9805ffdc4d76957e (diff)
[depends][native] cmake 3.26.4 and support for apple platforms
This includes changes required to build apple platforms for 3.26.4
Diffstat (limited to 'cmake/scripts')
-rw-r--r--cmake/scripts/darwin_embedded/Macros.cmake23
-rw-r--r--cmake/scripts/osx/Macros.cmake18
2 files changed, 11 insertions, 30 deletions
diff --git a/cmake/scripts/darwin_embedded/Macros.cmake b/cmake/scripts/darwin_embedded/Macros.cmake
index 3e58b0d63a..5084bc1a54 100644
--- a/cmake/scripts/darwin_embedded/Macros.cmake
+++ b/cmake/scripts/darwin_embedded/Macros.cmake
@@ -1,18 +1,15 @@
function(core_link_library lib wraplib)
- if(CMAKE_GENERATOR MATCHES "Unix Makefiles" OR CMAKE_GENERATOR STREQUAL Ninja)
- set(wrapper_obj cores/dll-loader/exports/CMakeFiles/wrapper.dir/wrapper.c.o)
- elseif(CMAKE_GENERATOR MATCHES "Xcode")
- # CURRENT_VARIANT is an Xcode env var
- # CPU is a project cmake var
- # Xcode new build system (CMAKE_XCODE_BUILD_SYSTEM=12) requires the env var CURRENT_VARIANT to be passed WITHOUT brackets
- # Xcode Legacy build system (CMAKE_XCODE_BUILD_SYSTEM=1) requires the env var CURRENT_VARIANT to be passed WITH brackets
- if(CMAKE_XCODE_BUILD_SYSTEM STREQUAL 12)
- set(wrapper_obj cores/dll-loader/exports/kodi.build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/wrapper.build/Objects-$CURRENT_VARIANT/${CPU}/wrapper.o)
- else()
- set(wrapper_obj cores/dll-loader/exports/kodi.build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/wrapper.build/Objects-$(CURRENT_VARIANT)/${CPU}/wrapper.o)
- endif()
+
+ # Somewhere after cmake 3.21 the xcode generation moves this into its out intermediate folder
+ # ideally we want to use $<TARGET_OBJECTS:wrapper> instead of all this wrapper_obj stuff
+ # however as at 3.26.4, even with the XCODE_EMIT_EFFECTIVE_PLATFORM_NAME property
+ # the intermediate config dirs are the same as $(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+ # but the generator expression only uses $(CONFIGURATION) in the paths returned.
+ # Somewhat similar to https://gitlab.kitware.com/cmake/cmake/-/issues/24024
+ if(CMAKE_XCODE_BUILD_SYSTEM STREQUAL 12)
+ set(wrapper_obj wrapper.build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Objects-$CURRENT_VARIANT/${CPU}/wrapper.o)
else()
- message(FATAL_ERROR "Unsupported generator in core_link_library")
+ set(wrapper_obj wrapper.build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Objects-$(CURRENT_VARIANT)/${CPU}/wrapper.o)
endif()
set(export -bundle -undefined dynamic_lookup
diff --git a/cmake/scripts/osx/Macros.cmake b/cmake/scripts/osx/Macros.cmake
index f81e218207..f32a7358b5 100644
--- a/cmake/scripts/osx/Macros.cmake
+++ b/cmake/scripts/osx/Macros.cmake
@@ -1,23 +1,7 @@
function(core_link_library lib wraplib)
- if(CMAKE_GENERATOR MATCHES "Unix Makefiles" OR CMAKE_GENERATOR STREQUAL Ninja)
- set(wrapper_obj cores/dll-loader/exports/CMakeFiles/wrapper.dir/wrapper.c.o)
- elseif(CMAKE_GENERATOR MATCHES "Xcode")
- # CURRENT_VARIANT is an Xcode env var
- # CPU is a project cmake var
- # Xcode new build system (CMAKE_XCODE_BUILD_SYSTEM=12) requires the env var CURRENT_VARIANT to be passed WITHOUT brackets
- # Xcode Legacy build system (CMAKE_XCODE_BUILD_SYSTEM=1) requires the env var CURRENT_VARIANT to be passed WITH brackets
- if(CMAKE_XCODE_BUILD_SYSTEM STREQUAL 12)
- set(wrapper_obj cores/dll-loader/exports/kodi.build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/wrapper.build/Objects-$CURRENT_VARIANT/${CPU}/wrapper.o)
- else()
- set(wrapper_obj cores/dll-loader/exports/kodi.build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/wrapper.build/Objects-$(CURRENT_VARIANT)/${CPU}/wrapper.o)
- endif()
- else()
- message(FATAL_ERROR "Unsupported generator in core_link_library")
- endif()
-
set(export -bundle -undefined dynamic_lookup -read_only_relocs suppress
-Wl,-alias_list,${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cores/dll-loader/exports/wrapper.def
- ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${wrapper_obj})
+ $<TARGET_OBJECTS:wrapper>)
set(extension ${CMAKE_SHARED_MODULE_SUFFIX})
set(check_arg "")
if(TARGET ${lib})