Skip to content

Commit bbdcaf2

Browse files
lkotuladahlerlend
authored andcommitted
BUG#37722500 Fix packaging of jit_executor in sles, fedora and ol10
This patch includes the jit_executor library in the fedora builds and marks it as private in both fedora and sles builds. Change-Id: I3cdfb76edd1a7abdf148ba5f75f26872d834ab57
1 parent e2fdb1f commit bbdcaf2

File tree

8 files changed

+340
-60
lines changed

8 files changed

+340
-60
lines changed

cmake/copy_custom_library.cmake

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
# along with this program; if not, write to the Free Software
2222
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2323

24+
# This cmake file is duplicated in `router/cmake/copy_custom_library.cmake`.
25+
2426
IF(EXISTS "./${library_version}")
2527
RETURN()
2628
ENDIF()

cmake/install_macros.cmake

+3
Original file line numberDiff line numberDiff line change
@@ -716,6 +716,7 @@ ENDFUNCTION(COPY_OPENSSL_BINARY)
716716
# We also update the RUNPATH of libraries to be '$ORIGIN' to ensure that
717717
# libraries get correct load-time dependencies. This is done using the
718718
# linux tool patchelf(1)
719+
# This cmake macro is duplicated in `router/cmake/install_macros.cmake`.
719720
#
720721
# Set ${OUTPUT_LIBRARY_NAME} to the new location.
721722
# Set ${OUTPUT_TARGET_NAME} to the name of a target which will do the copying.
@@ -808,6 +809,8 @@ ENDFUNCTION(COPY_CUSTOM_SHARED_LIBRARY)
808809
# Adds a target which copies the .dll to runtime_output_directory.
809810
# Adds INSTALL(FILES ....) rule to install the .dll to ${INSTALL_BINDIR}.
810811
# Looks for matching .pdb file, and installs it if found.
812+
# This cmake macro is duplicated in `router/cmake/install_macros.cmake`.
813+
#
811814
# Sets ${OUTPUT_TARGET_NAME} to the name of a target which will do the copying.
812815
FUNCTION(COPY_CUSTOM_DLL library_full_filename OUTPUT_TARGET_NAME)
813816
IF(NOT WIN32)

packaging/rpm-fedora/mysql.spec.in

+10-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ BuildRequires: systemd
135135
BuildRequires: time
136136
BuildRequires: zlib-devel
137137
# For rpm => 4.9 only: https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering
138-
%global _privatelibs libabsl_.*|libprotobuf.*|libmysqlharness\.so.*|libmysqlharness_stdx\.so.*|libmysqlharness_tls\.so.*|libmysqlrouter\.so\..*|libmysqlrouter_.*\.so\..*
138+
%global _privatelibs libabsl_.*|libprotobuf.*|libmysqlharness\.so.*|libmysqlharness_stdx\.so.*|libmysqlharness_tls\.so.*|libmysqlrouter\.so\..*|libmysqlrouter_.*\.so\..*|libjitexecutor.*
139139
%global _privateperl perl\\((GD|hostnames|lib::mtr|lib::v1|mtr_|My::)
140140
%global __requires_exclude ^((%{_privatelibs})|(%{_privateperl}))
141141
%global __provides_exclude_from ^(/usr/share/(mysql|mysql-test)/.*|%{_libdir}/mysql/plugin/.*\\.so|%{_libdir}/mysql/private/.*|%{_libdir}/mysqlrouter/.*|%{_libdir}/mysqlrouter/private/.*)$
@@ -568,6 +568,9 @@ mkdir debug
568568
%endif
569569
-DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \
570570
-DMYSQLX_UNIX_ADDR="/run/mysqld/mysqlx.sock" \
571+
%if 0%{?mrs_jit_executor_lib:1}
572+
-DMRS_JIT_EXECUTOR_LIB="%{mrs_jit_executor_lib}" \
573+
%endif
571574
-DWITH_NUMA=ON \
572575
-DCOMPILATION_COMMENT="%{compilation_comment_debug}" \
573576
-DCOMPILATION_COMMENT_SERVER="%{compilation_comment_server_debug}" \
@@ -599,6 +602,9 @@ mkdir release
599602
%endif
600603
-DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \
601604
-DMYSQLX_UNIX_ADDR="/run/mysqld/mysqlx.sock" \
605+
%if 0%{?mrs_jit_executor_lib:1}
606+
-DMRS_JIT_EXECUTOR_LIB="%{mrs_jit_executor_lib}" \
607+
%endif
602608
-DWITH_NUMA=ON \
603609
-DCOMPILATION_COMMENT="%{compilation_comment_release}" \
604610
-DCOMPILATION_COMMENT_SERVER="%{compilation_comment_server_release}" \
@@ -1381,6 +1387,9 @@ fi
13811387
%{_libdir}/mysqlrouter/private/libmysqlrouter_utils.so.*
13821388
%{_libdir}/mysqlrouter/private/libprotobuf.so.24.4.0
13831389
%{_libdir}/mysqlrouter/private/libabsl_*.so
1390+
%if 0%{?mrs_jit_executor_lib:1}
1391+
%{_libdir}/mysqlrouter/private/libjitexecutor*.so
1392+
%endif
13841393
%dir %{_libdir}/mysqlrouter
13851394
%dir %{_libdir}/mysqlrouter/private
13861395
%{_libdir}/mysqlrouter/*.so

packaging/rpm-sles/mysql.spec.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ BuildRequires: systemd-rpm-macros
137137
BuildRequires: cyrus-sasl-devel
138138
BuildRequires: openldap2-devel
139139

140-
%global _privatelibs libabsl_.*|libprotobuf.*|libmysqlharness\.so.*|libmysqlharness_stdx\.so.*|libmysqlharness_tls\.so.*|libmysqlrouter\.so\..*|libmysqlrouter_.*\.so\..*|libfido2.*|libpolyglot.*
140+
%global _privatelibs libabsl_.*|libprotobuf.*|libmysqlharness\.so.*|libmysqlharness_stdx\.so.*|libmysqlharness_tls\.so.*|libmysqlrouter\.so\..*|libmysqlrouter_.*\.so\..*|libfido2.*|libpolyglot.*|libjitexecutor.*
141141
%global _privateperl perl\\((GD|hostnames|lib::mtr|lib::v1|mtr_|My::)
142142
%global __requires_exclude ^((%{_privatelibs})|(%{_privateperl}))
143143
%global __provides_exclude_from ^(/usr/share/(mysql|mysql-test)/.*|%{_libdir}/mysql/plugin/.*\\.so|%{_libdir}/mysql/private/.*|%{_libdir}/mysqlrouter/.*|%{_libdir}/mysqlrouter/private/.*)$

router/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ INCLUDE(cmake/configure.cmake)
112112
INCLUDE(cmake/packaging.cmake)
113113
INCLUDE(cmake/Plugin.cmake)
114114
INCLUDE(cmake/fuzzer.cmake)
115+
INCLUDE(cmake/install_macros.cmake)
115116

116117
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/include)
117118

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Copyright (c) 2025, Oracle and/or its affiliates.
2+
#
3+
# This program is free software; you can redistribute it and/or modify
4+
# it under the terms of the GNU General Public License, version 2.0,
5+
# as published by the Free Software Foundation.
6+
#
7+
# This program is designed to work with certain software (including
8+
# but not limited to OpenSSL) that is licensed under separate terms,
9+
# as designated in a particular file or component or in included license
10+
# documentation. The authors of MySQL hereby grant you an additional
11+
# permission to link the program and your derivative works with the
12+
# separately licensed software that they have either included with
13+
# the program or referenced in the documentation.
14+
#
15+
# This program is distributed in the hope that it will be useful,
16+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
# GNU General Public License, version 2.0, for more details.
19+
#
20+
# You should have received a copy of the GNU General Public License
21+
# along with this program; if not, write to the Free Software
22+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23+
24+
# The cmake file is duplicated in `cmake/copy_custom_library.cmake`,
25+
# where this instance is being adjusted to handle JIT external
26+
# library, used by router.
27+
28+
IF(EXISTS "./${library_version}")
29+
RETURN()
30+
ENDIF()
31+
32+
EXECUTE_PROCESS(
33+
COMMAND ${CMAKE_COMMAND} -E copy
34+
"${library_directory}/${library_version}" "./${library_version}"
35+
)
36+
37+
IF(NOT "${library_version}" STREQUAL "${library_name}")
38+
EXECUTE_PROCESS(
39+
COMMAND ${CMAKE_COMMAND} -E create_symlink
40+
"${library_version}" "${library_name}"
41+
)
42+
ENDIF()
43+
44+
IF(NOT "${library_version}" STREQUAL "${library_soname}")
45+
EXECUTE_PROCESS(
46+
COMMAND ${CMAKE_COMMAND} -E create_symlink
47+
"${library_version}" "${library_soname}"
48+
)
49+
ENDIF()
50+
51+
# Some of the pre-built libraries come without execute bit set.
52+
EXECUTE_PROCESS(
53+
COMMAND chmod +x "./${library_version}")

router/cmake/install_macros.cmake

+254
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
# Copyright (c) 2025, Oracle and/or its affiliates.
2+
#
3+
# This program is free software; you can redistribute it and/or modify
4+
# it under the terms of the GNU General Public License, version 2.0,
5+
# as published by the Free Software Foundation.
6+
#
7+
# This program is designed to work with certain software (including
8+
# but not limited to OpenSSL) that is licensed under separate terms,
9+
# as designated in a particular file or component or in included license
10+
# documentation. The authors of MySQL hereby grant you an additional
11+
# permission to link the program and your derivative works with the
12+
# separately licensed software that they have either included with
13+
# the program or referenced in the documentation.
14+
#
15+
# This program is distributed in the hope that it will be useful,
16+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
# GNU General Public License, version 2.0, for more details.
19+
#
20+
# You should have received a copy of the GNU General Public License
21+
# along with this program; if not, write to the Free Software
22+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23+
24+
25+
# Move the custom shared library and symlinks to library_output_directory.
26+
#
27+
# We ensure that the copied custom libraries have the execute bit set.
28+
# The following macro is duplicated in `cmake/install_macros.cmake`,
29+
# where this instance is being adjusted to handle JIT external
30+
# library, used by router.
31+
#
32+
# Set ${OUTPUT_LIBRARY_NAME} to the new location.
33+
# Set ${OUTPUT_TARGET_NAME} to the name of a target which will do the copying.
34+
# Add an INSTALL(FILES ....) rule to install library and symlinks into
35+
# ${INSTALL_PRIV_LIBDIR}
36+
FUNCTION(ROUTER_COPY_CUSTOM_SHARED_LIBRARY library_full_filename
37+
OUTPUT_LIBRARY_NAME
38+
OUTPUT_TARGET_NAME
39+
)
40+
GET_FILENAME_COMPONENT(LIBRARY_EXT "${library_full_filename}" EXT)
41+
IF(NOT LIBRARY_EXT STREQUAL ".so")
42+
RETURN()
43+
ENDIF()
44+
GET_FILENAME_COMPONENT(library_directory "${library_full_filename}" DIRECTORY)
45+
GET_FILENAME_COMPONENT(library_name "${library_full_filename}" NAME)
46+
GET_FILENAME_COMPONENT(library_name_we "${library_full_filename}" NAME_WE)
47+
48+
EXECUTE_PROCESS(
49+
COMMAND readlink "${library_full_filename}" OUTPUT_VARIABLE library_version
50+
OUTPUT_STRIP_TRAILING_WHITESPACE)
51+
52+
FIND_SONAME(${library_full_filename} library_soname)
53+
FIND_OBJECT_DEPENDENCIES(${library_full_filename} library_dependencies)
54+
55+
if("${library_version}" STREQUAL "")
56+
SET(library_version ${library_name})
57+
ENDIF()
58+
IF("${library_soname}" STREQUAL "")
59+
SET(library_soname ${library_name})
60+
ENDIF()
61+
62+
MESSAGE(STATUS "CUSTOM library ${library_full_filename}")
63+
#MESSAGE(STATUS "CUSTOM version ${library_version}")
64+
#MESSAGE(STATUS "CUSTOM directory ${library_directory}")
65+
#MESSAGE(STATUS "CUSTOM name ${library_name}")
66+
#MESSAGE(STATUS "CUSTOM name_we ${library_name_we}")
67+
#MESSAGE(STATUS "CUSTOM soname ${library_soname}")
68+
69+
SET(COPIED_LIBRARY_NAME
70+
"${CMAKE_BINARY_DIR}/library_output_directory/${library_name}")
71+
SET(COPY_TARGET_NAME "copy_${library_name_we}_dll")
72+
73+
# Keep track of libraries and dependencies.
74+
SET(SONAME_${library_name_we} "${library_soname}"
75+
CACHE INTERNAL "SONAME for ${library_name_we}" FORCE)
76+
SET(NEEDED_${library_name_we} "${library_dependencies}"
77+
CACHE INTERNAL "" FORCE)
78+
SET(KNOWN_CUSTOM_LIBRARIES
79+
${KNOWN_CUSTOM_LIBRARIES} ${library_name_we} CACHE INTERNAL "" FORCE)
80+
81+
# Do copying and patching in a sub-process, so that we can skip it if
82+
# already done. The BYPRODUCTS arguments is needed by Ninja, and is
83+
# ignored on non-Ninja generators except to mark byproducts GENERATED.
84+
ADD_CUSTOM_TARGET(${COPY_TARGET_NAME} ALL
85+
COMMAND ${CMAKE_COMMAND}
86+
-Dlibrary_directory="${library_directory}"
87+
-Dlibrary_name="${library_name}"
88+
-Dlibrary_soname="${library_soname}"
89+
-Dlibrary_version="${library_version}"
90+
-P ${CMAKE_SOURCE_DIR}/router/cmake/copy_custom_library.cmake
91+
92+
BYPRODUCTS
93+
"${CMAKE_BINARY_DIR}/library_output_directory/${library_name}"
94+
95+
WORKING_DIRECTORY
96+
"${CMAKE_BINARY_DIR}/library_output_directory/"
97+
)
98+
99+
# Link with the copied library, rather than the original one.
100+
SET(${OUTPUT_LIBRARY_NAME} "${COPIED_LIBRARY_NAME}" PARENT_SCOPE)
101+
SET(${OUTPUT_TARGET_NAME} "${COPY_TARGET_NAME}" PARENT_SCOPE)
102+
103+
ADD_DEPENDENCIES(copy_linux_custom_dlls ${COPY_TARGET_NAME})
104+
105+
MESSAGE(STATUS "INSTALL ${library_name} to ${INSTALL_PRIV_LIBDIR}")
106+
107+
# Cannot use INSTALL_PRIVATE_LIBRARY because these are not targets.
108+
INSTALL(FILES
109+
${CMAKE_BINARY_DIR}/library_output_directory/${library_name}
110+
${CMAKE_BINARY_DIR}/library_output_directory/${library_soname}
111+
${CMAKE_BINARY_DIR}/library_output_directory/${library_version}
112+
DESTINATION "${ROUTER_INSTALL_LIBDIR}" COMPONENT Router
113+
PERMISSIONS
114+
OWNER_READ OWNER_WRITE OWNER_EXECUTE
115+
GROUP_READ GROUP_EXECUTE
116+
WORLD_READ WORLD_EXECUTE
117+
)
118+
ENDFUNCTION(ROUTER_COPY_CUSTOM_SHARED_LIBRARY)
119+
120+
121+
# For 3rd party .dlls on Windows.
122+
# Adds a target which copies the .dll to library_output_directory
123+
# Adds INSTALL(FILES ....) rule to install the .dll to ${ROUTER_INSTALL_PLUGINDIR}.
124+
# Looks for matching .pdb file, and installs it if found.
125+
# The following macro is duplicated in `cmake/install_macros.cmake`,
126+
# where this instance is being adjusted to handle JIT external
127+
# library, used by router.
128+
#
129+
# Sets ${OUTPUT_TARGET_NAME} to the name of a target which will do the copying.
130+
FUNCTION(ROUTER_COPY_CUSTOM_DLL library_full_filename OUTPUT_LIBRARY_NAME OUTPUT_TARGET_NAME)
131+
IF(NOT WIN32)
132+
RETURN()
133+
ENDIF()
134+
GET_FILENAME_COMPONENT(library_directory "${library_full_filename}" DIRECTORY)
135+
GET_FILENAME_COMPONENT(library_name "${library_full_filename}" NAME)
136+
GET_FILENAME_COMPONENT(library_name_we "${library_full_filename}" NAME_WE)
137+
138+
SET(LIBRARY_DIR "${CMAKE_BINARY_DIR}/plugin_output_directory")
139+
SET(SOURCE_DLL_NAME "${library_directory}/${library_name_we}.dll")
140+
SET(COPIED_LIBRARY_NAME "${LIBRARY_DIR}/${CMAKE_CFG_INTDIR}/${library_name_we}.dll")
141+
SET(COPY_TARGET_NAME "copy_${library_name_we}_dll")
142+
143+
ADD_CUSTOM_COMMAND(
144+
OUTPUT "${COPIED_LIBRARY_NAME}"
145+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
146+
"${SOURCE_DLL_NAME}" "${COPIED_LIBRARY_NAME}"
147+
)
148+
MY_ADD_CUSTOM_TARGET(${COPY_TARGET_NAME} ALL
149+
DEPENDS "${COPIED_LIBRARY_NAME}"
150+
)
151+
152+
# Install the original file, to avoid referring to CMAKE_CFG_INTDIR.
153+
MESSAGE(STATUS "INSTALL ${SOURCE_DLL_NAME} to ${ROUTER_INSTALL_PLUGINDIR}")
154+
INSTALL(FILES "${SOURCE_DLL_NAME}"
155+
DESTINATION "${ROUTER_INSTALL_PLUGINDIR}" COMPONENT Router
156+
)
157+
158+
SET(${OUTPUT_LIBRARY_NAME} "${library_full_filename}" PARENT_SCOPE)
159+
SET(${OUTPUT_TARGET_NAME} "${COPY_TARGET_NAME}" PARENT_SCOPE)
160+
161+
FIND_FILE(HAVE_${library_name_we}_PDB
162+
NAMES "${library_name_we}.pdb"
163+
PATHS "${library_directory}"
164+
NO_DEFAULT_PATH
165+
)
166+
IF(HAVE_${library_name_we}_PDB)
167+
SET(COPIED_PDB_NAME
168+
"${LIBRARY_DIR}/${CMAKE_CFG_INTDIR}/${library_name_we}.pdb")
169+
SET(COPY_TARGET_PDB_NAME "copy_${library_name_we}_pdb")
170+
171+
ADD_CUSTOM_COMMAND(
172+
OUTPUT "${COPIED_PDB_NAME}"
173+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
174+
"${HAVE_${library_name_we}_PDB}" "${COPIED_PDB_NAME}"
175+
)
176+
MY_ADD_CUSTOM_TARGET(${COPY_TARGET_PDB_NAME} ALL
177+
DEPENDS "${COPIED_PDB_NAME}"
178+
)
179+
180+
MESSAGE(STATUS
181+
"INSTALL ${HAVE_${library_name_we}_PDB} to ${ROUTER_INSTALL_PLUGINDIR}")
182+
INSTALL(FILES "${HAVE_${library_name_we}_PDB}"
183+
DESTINATION "${ROUTER_INSTALL_PLUGINDIR}" COMPONENT Router
184+
)
185+
ENDIF()
186+
ENDFUNCTION(ROUTER_COPY_CUSTOM_DLL)
187+
188+
# For 3rd party .dylib on MACOS.
189+
# Adds a target which copies the .dylib to library_output_directory
190+
# Adds INSTALL(FILES ....) rule to install the .dylib to ${ROUTER_INSTALL_PLUGINDIR}.
191+
# Sets ${OUTPUT_TARGET_NAME} to the name of a target which will do the copying.
192+
FUNCTION(ROUTER_COPY_CUSTOM_DYLIB library_full_filename OUTPUT_LIBRARY_NAME OUTPUT_TARGET_NAME)
193+
IF(NOT APPLE)
194+
RETURN()
195+
ENDIF()
196+
GET_FILENAME_COMPONENT(library_directory "${library_full_filename}" DIRECTORY)
197+
GET_FILENAME_COMPONENT(library_name "${library_full_filename}" NAME)
198+
GET_FILENAME_COMPONENT(library_name_we "${library_full_filename}" NAME_WE)
199+
200+
SET(LIBRARY_DIR "${CMAKE_BINARY_DIR}/library_output_directory")
201+
SET(PLUGIN_DIR "${CMAKE_BINARY_DIR}/plugin_output_directory")
202+
203+
IF(BUILD_IS_SINGLE_CONFIG)
204+
SET(COPIED_LIBRARY_NAME "${LIBRARY_DIR}/${library_name}")
205+
SET(LINK_PLUGIN_DIR "${PLUGIN_DIR}")
206+
ELSE()
207+
SET(COPIED_LIBRARY_NAME "${LIBRARY_DIR}/${CMAKE_CFG_INTDIR}/${library_name}")
208+
SET(LINK_PLUGIN_DIR "${PLUGIN_DIR}/${CMAKE_CFG_INTDIR}")
209+
ENDIF()
210+
211+
SET(COPY_TARGET_NAME "copy_${library_name_we}_dylib")
212+
SET(LINK_TARGET_NAME "link_${library_name_we}_dylib")
213+
SET(BIND_TARGET_NAME "BIND_${library_name_we}_dylib")
214+
215+
216+
ADD_CUSTOM_TARGET(${COPY_TARGET_NAME} ALL
217+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
218+
"${library_full_filename}" "${COPIED_LIBRARY_NAME}"
219+
)
220+
ADD_CUSTOM_COMMAND(TARGET ${COPY_TARGET_NAME} POST_BUILD
221+
COMMAND install_name_tool -id
222+
"@rpath/${library_name}"
223+
"${COPIED_LIBRARY_NAME}"
224+
)
225+
226+
ADD_CUSTOM_TARGET(${LINK_TARGET_NAME} ALL
227+
COMMAND ${CMAKE_COMMAND} -E create_symlink
228+
"${COPIED_LIBRARY_NAME}" "${library_name}"
229+
WORKING_DIRECTORY "${LINK_PLUGIN_DIR}"
230+
231+
COMMENT "Creating libpolyglot symlinks in plugin_output_directory"
232+
233+
BYPRODUCTS
234+
"${LINK_PLUGIN_DIR}/${library_name}"
235+
)
236+
237+
MY_ADD_CUSTOM_TARGET(${BIND_TARGET_NAME} ALL
238+
DEPENDS "${COPIED_LIBRARY_NAME}"
239+
)
240+
241+
ADD_DEPENDENCIES(${BIND_TARGET_NAME}
242+
${LINK_TARGET_NAME}
243+
)
244+
ADD_DEPENDENCIES(${LINK_TARGET_NAME}
245+
${COPY_TARGET_NAME})
246+
247+
MESSAGE(STATUS "INSTALL ${library_full_filename} to ${ROUTER_INSTALL_PLUGINDIR}")
248+
INSTALL(FILES "${COPIED_LIBRARY_NAME}"
249+
DESTINATION "${ROUTER_INSTALL_PLUGINDIR}" COMPONENT Router
250+
)
251+
252+
SET(${OUTPUT_LIBRARY_NAME} "${COPIED_LIBRARY_NAME}" PARENT_SCOPE)
253+
SET(${OUTPUT_TARGET_NAME} "${BIND_TARGET_NAME}" PARENT_SCOPE)
254+
ENDFUNCTION(ROUTER_COPY_CUSTOM_DYLIB)

0 commit comments

Comments
 (0)