@@ -179,6 +179,19 @@ else()
179179 )
180180endif ()
181181
182+ if (REFLECTCPP_BUILD_SHARED AND REFLECTCPP_USE_BUNDLED_DEPENDENCIES AND _REFLECTCPP_NEEDS_JSON_IMPL)
183+ target_compile_definitions (reflectcpp
184+ PRIVATE
185+ YYJSON_EXPORTS
186+ INTERFACE
187+ YYJSON_IMPORTS
188+ )
189+ endif ()
190+
191+ if (REFLECTCPP_BUILD_SHARED)
192+ target_compile_definitions (reflectcpp PUBLIC RFL_BUILD_SHARED)
193+ endif ()
194+
182195if (REFLECTCPP_USE_STD_EXPECTED)
183196 target_compile_definitions (reflectcpp PUBLIC REFLECTCPP_USE_STD_EXPECTED)
184197endif ()
@@ -232,7 +245,20 @@ if (REFLECTCPP_AVRO)
232245 if (REFLECTCPP_USE_VCPKG)
233246 target_include_directories (reflectcpp SYSTEM PRIVATE "${VCPKG_INSTALLED_DIR} /${VCPKG_TARGET_TRIPLET} /include" )
234247 if (MSVC )
235- target_link_libraries (reflectcpp PRIVATE "${VCPKG_INSTALLED_DIR} /${VCPKG_TARGET_TRIPLET} /lib/avro${CMAKE_STATIC_LIBRARY_SUFFIX} " )
248+ set (_AVRO_STATIC_LIB "${VCPKG_INSTALLED_DIR} /${VCPKG_TARGET_TRIPLET} /lib/avro${CMAKE_STATIC_LIBRARY_SUFFIX} " )
249+ if (REFLECTCPP_BUILD_SHARED)
250+ message (STATUS "With whole archive ${_AVRO_STATIC_LIB} " )
251+ target_link_libraries (reflectcpp
252+ PUBLIC
253+ $<LINK_LIBRARY:WHOLE_ARCHIVE,${_AVRO_STATIC_LIB} >
254+ "${VCPKG_INSTALLED_DIR} /${VCPKG_TARGET_TRIPLET} /lib/snappy${CMAKE_STATIC_LIBRARY_SUFFIX} "
255+ "${VCPKG_INSTALLED_DIR} /${VCPKG_TARGET_TRIPLET} /lib/lzma${CMAKE_STATIC_LIBRARY_SUFFIX} "
256+ "${VCPKG_INSTALLED_DIR} /${VCPKG_TARGET_TRIPLET} /lib/jansson${CMAKE_STATIC_LIBRARY_SUFFIX} "
257+ "${VCPKG_INSTALLED_DIR} /${VCPKG_TARGET_TRIPLET} /lib/zlib${CMAKE_STATIC_LIBRARY_SUFFIX} "
258+ )
259+ else ()
260+ target_link_libraries (reflectcpp PUBLIC "${_AVRO_STATIC_LIB} " )
261+ endif ()
236262 else ()
237263 target_link_libraries (reflectcpp PRIVATE "${VCPKG_INSTALLED_DIR} /${VCPKG_TARGET_TRIPLET} /lib/libavro${CMAKE_STATIC_LIBRARY_SUFFIX} " )
238264 endif ()
@@ -370,9 +396,11 @@ target_sources(reflectcpp PRIVATE ${REFLECT_CPP_SOURCES})
370396target_precompile_headers(reflectcpp PRIVATE [["rfl.hpp"]] <iostream> <string > <functional>)
371397
372398if (REFLECTCPP_BUILD_TESTS)
399+ add_library (reflectcpp_tests_crt INTERFACE )
400+ target_link_libraries (reflectcpp_tests_crt INTERFACE reflectcpp GTest::gtest_main)
401+
373402 enable_testing ()
374403 find_package (GTest CONFIG REQUIRED)
375- set (REFLECT_CPP_GTEST_LIB reflectcpp GTest::gtest_main)
376404 add_subdirectory (tests)
377405endif ()
378406
0 commit comments