@@ -53,24 +53,37 @@ endfunction()
5353set (FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR } /flutter" )
5454add_subdirectory (${FLUTTER_MANAGED_DIR} )
5555
56- # build libjsoncpp and libsecret for flutter_secure_storage
57- set (ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH} :${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/build/pkg-config" )
58- set (ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH} :${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/pc" )
59-
60- include_directories (${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/include )
61-
62- include_directories (${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret )
63- include_directories (${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret/_build )
64-
65- add_library (jsoncpp SHARED IMPORTED )
66- set_target_properties (jsoncpp PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so" )
67- add_library (secret-1 SHARED IMPORTED )
68- set_target_properties (secret-1 PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so" )
69-
7056# System-level dependencies.
7157find_package (PkgConfig REQUIRED )
7258pkg_check_modules (GTK REQUIRED IMPORTED_TARGET gtk+-3.0 )
7359
60+ # jsoncpp and libsecret for flutter_secure_storage. When
61+ # USE_SYSTEM_SECURE_STORAGE_DEPS is set, link and bundle the system-installed
62+ # copies; otherwise use the artifacts built by scripts/linux/build_secure_storage_deps.sh.
63+ option (USE_SYSTEM_SECURE_STORAGE_DEPS "Link against system-installed jsoncpp and libsecret" OFF )
64+ if (DEFINED ENV{USE_SYSTEM_SECURE_STORAGE_DEPS} AND "$ENV{USE_SYSTEM_SECURE_STORAGE_DEPS} " STREQUAL "1" )
65+ set (USE_SYSTEM_SECURE_STORAGE_DEPS ON )
66+ endif ()
67+
68+ if (USE_SYSTEM_SECURE_STORAGE_DEPS)
69+ pkg_check_modules (JSONCPP REQUIRED IMPORTED_TARGET jsoncpp )
70+ pkg_check_modules (LIBSECRET REQUIRED IMPORTED_TARGET libsecret-1 )
71+ pkg_get_variable (JSONCPP_LIBDIR jsoncpp libdir )
72+ pkg_get_variable (LIBSECRET_LIBDIR libsecret-1 libdir )
73+ else ()
74+ set (ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH} :${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/build/pkg-config" )
75+ set (ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH} :${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/pc" )
76+
77+ include_directories (${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/include )
78+ include_directories (${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret )
79+ include_directories (${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret/_build )
80+
81+ add_library (jsoncpp SHARED IMPORTED )
82+ set_target_properties (jsoncpp PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so" )
83+ add_library (secret-1 SHARED IMPORTED )
84+ set_target_properties (secret-1 PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so" )
85+ endif ()
86+
7487add_definitions (-DAPPLICATION_ID= "${APPLICATION_ID} " )
7588
7689# Define the application target. To change its name, change BINARY_NAME above,
@@ -91,8 +104,12 @@ apply_standard_settings(${BINARY_NAME})
91104target_link_libraries (${BINARY_NAME} PRIVATE -static-libgcc -static-libstdc++ )
92105target_link_libraries (${BINARY_NAME} PRIVATE flutter )
93106target_link_libraries (${BINARY_NAME} PRIVATE PkgConfig::GTK )
94- target_link_libraries (${BINARY_NAME} PRIVATE jsoncpp )
95- target_link_libraries (${BINARY_NAME} PRIVATE secret-1 )
107+ if (USE_SYSTEM_SECURE_STORAGE_DEPS)
108+ target_link_libraries (${BINARY_NAME} PRIVATE PkgConfig::JSONCPP PkgConfig::LIBSECRET )
109+ else ()
110+ target_link_libraries (${BINARY_NAME} PRIVATE jsoncpp )
111+ target_link_libraries (${BINARY_NAME} PRIVATE secret-1 )
112+ endif ()
96113
97114
98115# Run the Flutter tool portions of the build. This must not be removed.
@@ -147,19 +164,28 @@ if(INCLUDE_MWC_SO)
147164 COMPONENT Runtime )
148165endif ()
149166
150- install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so.1.7.4" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
151- COMPONENT Runtime )
152- install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so.1" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
153- COMPONENT Runtime )
154- install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
155- COMPONENT Runtime )
167+ if (USE_SYSTEM_SECURE_STORAGE_DEPS)
168+ file (GLOB JSONCPP_SO_FILES "${JSONCPP_LIBDIR} /libjsoncpp.so*" )
169+ install (FILES ${JSONCPP_SO_FILES} DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
170+ COMPONENT Runtime )
171+ file (GLOB LIBSECRET_SO_FILES "${LIBSECRET_LIBDIR} /libsecret-1.so*" )
172+ install (FILES ${LIBSECRET_SO_FILES} DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
173+ COMPONENT Runtime )
174+ else ()
175+ install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so.1.7.4" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
176+ COMPONENT Runtime )
177+ install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so.1" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
178+ COMPONENT Runtime )
179+ install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
180+ COMPONENT Runtime )
156181
157- install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so.0.0.0" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
158- COMPONENT Runtime )
159- install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so.0" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
160- COMPONENT Runtime )
161- install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
162- COMPONENT Runtime )
182+ install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so.0.0.0" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
183+ COMPONENT Runtime )
184+ install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so.0" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
185+ COMPONENT Runtime )
186+ install (FILES "${CMAKE_CURRENT_SOURCE_DIR } /../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR} "
187+ COMPONENT Runtime )
188+ endif ()
163189
164190foreach (bundled_library ${PLUGIN_BUNDLED_LIBRARIES} )
165191 install (FILES "${bundled_library} "
0 commit comments