From a5c42e07ae223d440ff11347e0cf1fd58fd383df Mon Sep 17 00:00:00 2001 From: Nicholas Guriev Date: Sat, 26 Aug 2023 18:23:53 +0300 Subject: [PATCH 1/2] Look for system-wide cppgir before fallback to the bundled copy Closes: #282 --- external/glib/CMakeLists.txt | 4 +++- external/glib/generate_cppgir.cmake | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/external/glib/CMakeLists.txt b/external/glib/CMakeLists.txt index 3c6fe4be..c862705f 100644 --- a/external/glib/CMakeLists.txt +++ b/external/glib/CMakeLists.txt @@ -13,9 +13,11 @@ function(add_cppgir) # isolate scope set(BUILD_EXAMPLES OFF) add_subdirectory(cppgir EXCLUDE_FROM_ALL) endfunction() -add_cppgir() include(generate_cppgir.cmake) +if (NOT CppGir_FOUND) + add_cppgir() +endif() generate_cppgir(external_glib Gio-2.0) find_package(PkgConfig REQUIRED) diff --git a/external/glib/generate_cppgir.cmake b/external/glib/generate_cppgir.cmake index c15d3f9e..9b0a5ac8 100644 --- a/external/glib/generate_cppgir.cmake +++ b/external/glib/generate_cppgir.cmake @@ -4,6 +4,8 @@ # For license and copyright information please follow this link: # https://github.com/desktop-app/legal/blob/master/LEGAL +find_package(CppGir 2.0) + function(generate_cppgir target_name gir) set(cppgir_loc ${cmake_helpers_loc}/external/glib/cppgir) @@ -17,6 +19,9 @@ function(generate_cppgir target_name gir) ${cppgir_loc}/data/cppgir.ignore ${cppgir_loc}/data/cppgir_unix.ignore ) + if (CppGir_FOUND) + set(ignore_files) # rely on default ignore list + endif() set(gir_path) if (IS_ABSOLUTE "${gir}") @@ -33,7 +38,7 @@ function(generate_cppgir target_name gir) --class --class-full --expected - --ignore + "$<$:--ignore>" "$" --output ${gen_dst} From eed39522952c15f448c54290454806dd011c4996 Mon Sep 17 00:00:00 2001 From: Nicholas Guriev Date: Sat, 26 Aug 2023 18:23:53 +0300 Subject: [PATCH 2/2] Look for system-wide cppgir before fallback to the bundled copy Closes: #282 --- external/glib/generate_cppgir.cmake | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/external/glib/generate_cppgir.cmake b/external/glib/generate_cppgir.cmake index 9b0a5ac8..2ad82277 100644 --- a/external/glib/generate_cppgir.cmake +++ b/external/glib/generate_cppgir.cmake @@ -15,11 +15,12 @@ function(generate_cppgir target_name gir) set(gen_timestamp ${gen_dst}/${target_name}_cppgir.timestamp) - set(ignore_files - ${cppgir_loc}/data/cppgir.ignore - ${cppgir_loc}/data/cppgir_unix.ignore - ) - if (CppGir_FOUND) + if (NOT CppGir_FOUND) + set(ignore_files + ${cppgir_loc}/data/cppgir.ignore + ${cppgir_loc}/data/cppgir_unix.ignore + ) + else() set(ignore_files) # rely on default ignore list endif()