diff options
author | fuzzard <fuzzard@kodi.tv> | 2023-05-24 16:53:32 +1000 |
---|---|---|
committer | fuzzard <fuzzard@kodi.tv> | 2023-06-06 09:52:38 +1000 |
commit | 76784adcfdfb58d2d23309e5bb1db4b1fc6b6d8a (patch) | |
tree | c0344cec219e2c417d434b5d7748601616c54aaa /cmake/scripts | |
parent | 07c63d13f3cd9bd41d7335ef9805ffdc4d76957e (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.cmake | 23 | ||||
-rw-r--r-- | cmake/scripts/osx/Macros.cmake | 18 |
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}) |