void-packages/srcpkgs/kconfig/patches/add-crossbuild-support-for-its-tools.patch
Đoàn Trần Công Danh dd9d4a1979 srcpkgs/k*: convert patches to -Np1
```sh
git grep -l '^patch_args=-Np0' "srcpkgs/$1*/template" |
while read template; do
	for p in ${template%/template}/patches/*; do
		sed -i '
			\,^[+-][+-][+-] /dev/null,b
			/^[*-]\+ [0-9]\+\(,[0-9]\+\)\? [*-]\+$/b
			s,^[*][*][*] ,&a/,
			/^--- /{
				s,\(^--- \)\(./\)*,\1a/,
				s,[.][Oo][Rr][Ii][Gg]\([	/]\),\1,
				s/[.][Oo][Rr][Ii][Gg]$//
				s/[.]patched[.]\([^.]\)/.\1/
				h
			}
			/^+++ -/{
				g
				s/^--- a/+++ b/
				b
			}
			s,\(^+++ \)\(./\)*,\1b/,
		' "$p"
	done
	sed -i '/^patch_args=/d' $template
done
```
2021-06-20 13:17:29 +07:00

51 lines
2.5 KiB
Diff

Handle cross build support for kconfig_compiler and kconf_update tools.
Adapted from this patch:
https://build.opensuse.org/package/view_file/home:rhabacker:branches:windows:mingw:win32:KF529/mingw32-kconfig/0001-Add-MinGW32-cross-compile-support-to-kconfig_compile.patch
Contrary to reference above, paths to these tools are hardcoded in this package.
If not, packages that depend on it will have to indicate each binary "native" paths in case
of cross-build, since these cmake directive lines are always evalued at *their* build time.
--- a/KF5ConfigConfig.cmake.in
+++ b/KF5ConfigConfig.cmake.in
@@ -11,5 +11,13 @@ if(CMAKE_CROSSCOMPILING AND KF5_HOST_TOOLING)
include("${KCONFIGCOMPILER_PATH}")
else()
include("${CMAKE_CURRENT_LIST_DIR}/KF5ConfigCompilerTargets.cmake")
+ if(CMAKE_CROSSCOMPILING)
+ set_target_properties(KF5::kconfig_compiler PROPERTIES IMPORTED_LOCATION_NONE /usr/lib/libexec/kf5/kconfig_compiler_kf5)
+ set_target_properties(KF5::kconfig_compiler PROPERTIES IMPORTED_LOCATION /usr/lib/libexec/kf5/kconfig_compiler_kf5)
+ endif()
+ if(CMAKE_CROSSCOMPILING)
+ set_target_properties(KF5::kconf_update PROPERTIES IMPORTED_LOCATION_NONE /usr/lib/libexec/kf5/kconf_update)
+ set_target_properties(KF5::kconf_update PROPERTIES IMPORTED_LOCATION /usr/lib/libexec/kf5/kconf_update)
+ endif()
endif()
include("${CMAKE_CURRENT_LIST_DIR}/KF5ConfigMacros.cmake")
--- a/KF5ConfigMacros.cmake
+++ b/KF5ConfigMacros.cmake
@@ -89,8 +89,12 @@
endif()
# the command for creating the source file from the kcfg file
+ set(KCONFIG_COMPILER_LOCATION KF5::kconfig_compiler)
+ if(CMAKE_CROSSCOMPILING)
+ get_target_property(KCONFIG_COMPILER_LOCATION KF5::kconfig_compiler LOCATION)
+ endif()
add_custom_command(OUTPUT ${_header_FILE} ${_src_FILE}
- COMMAND KF5::kconfig_compiler
+ COMMAND ${KCONFIG_COMPILER_LOCATION}
ARGS ${_kcfg_FILE} ${_tmp_FILE} -d ${CMAKE_CURRENT_BINARY_DIR}/${_rel_PATH}
MAIN_DEPENDENCY ${_tmp_FILE}
DEPENDS ${_kcfg_FILE})
--- a/src/kconfig_compiler/CMakeLists.txt
+++ b/src/kconfig_compiler/CMakeLists.txt
@@ -12,6 +12,7 @@
if(BUILD_TESTING)
message(WARNING "Testing should be disabled on cross-compilation")
endif()
+ add_executable(KF5::kconfig_compiler IMPORTED GLOBAL)
else()
add_executable(KF5::kconfig_compiler ALIAS kconfig_compiler)
endif()