summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2021-05-28 19:59:48 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-06-15 10:53:32 +0000
commite0979612a57d0a71c2b4f5d646547b5a5f6ab99c (patch)
tree4f01307f92341fb6e978773aef0998b9839fad90 /cmake
parentad036413b1044c802253a5843568048d22523ebf (diff)
Add spellchecker support and qwebengine_covert_dict to cmake
Add spellchecker dictionary conversion tool. Change scope of gn object imported variables to function scope. Change-Id: Ice579a89e20b80034b675e7f767a774100478472 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 9451ceee24e832d32a86ae6a2f37eea781acaa2f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Functions.cmake34
1 files changed, 34 insertions, 0 deletions
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake
index 2cd81554e..c61e403be 100644
--- a/cmake/Functions.cmake
+++ b/cmake/Functions.cmake
@@ -294,3 +294,37 @@ function(get_darwin_sdk_version result)
endif()
endfunction()
+function(extend_target_with_gn_objects target config cmakeFile stampFile)
+
+ include(${buildDir}/${config}/${cmakeFile})
+
+ string(TOUPPER ${config} cfg)
+ add_library(GnObjects_${target}_${config} OBJECT IMPORTED GLOBAL)
+ target_link_libraries(${target} PRIVATE $<$<CONFIG:${config}>:GnObjects_${target}_${config}>)
+ add_custom_target(ninja_${target}_${config} DEPENDS ${buildDir}/${config}/${stampFile})
+ add_dependencies(GnObjects_${target}_${config} ninja_${target}_${config})
+ #TODO: remove GnObjects_${target}_${config} with CMAKE 3.20
+ set_property(TARGET GnObjects_${target}_${config}
+ PROPERTY IMPORTED_OBJECTS_${cfg} ${${cfg}_NINJA_OBJECTS}
+ )
+ set_source_files_properties(${${cfg}_NINJA_OBJECTS} PROPERTIES GENERATED TRUE)
+
+ if(LINUX)
+ target_link_libraries(${target}
+ PRIVATE "-Wl,--start-group" "$<$<CONFIG:${config}>:${${cfg}_NINJA_ARCHIVES}>" "-Wl,--end-group")
+ else()
+ target_link_libraries(${target} PRIVATE "$<$<CONFIG:${config}>:${${cfg}_NINJA_ARCHIVES}>")
+ endif()
+
+ target_link_libraries(${target} PUBLIC "$<$<CONFIG:${config}>:${${cfg}_NINJA_LIBS}>")
+
+ # we depend on stampFile, but ninja backend generator needs more (create once)
+ if(stampFile)
+ add_custom_command(OUTPUT ${${cfg}_NINJA_OBJECTS} ${${cfg}_NINJA_ARCHIVES}
+ DEPENDS ${buildDir}/${config}/${stampFile}
+ )
+ add_custom_target(generate_${target}_${cfg}
+ DEPENDS ${${cfg}_NINJA_OBJECTS} ${${cfg}_NINJA_ARCHIVES}
+ )
+ endif()
+endfunction()