diff --git a/AGENTS.md b/AGENTS.md index d1c24923e..346a58c3a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -38,6 +38,10 @@ bytes ─▶ magic/open_strategy ─▶ DecodedFile ─▶ Document ─▶ Eleme `type`, plus side maps for per-type payloads. Builders: `create_element` / `create_*_element` / `append_child`. Minimal example: `oldms/presentation/ppt_element_registry.*`. +- An **`ElementIdentifier` is opaque, and 64 bits wide**: registry engines use it + as index + 1, `csv` packs a kind, a row and a column into its bits. An engine + wanting a narrower id narrows it inside its own store (`odf`'s + `ElementRegistry::StoredId`) and widens at the boundary. - An **`ElementAdapter`**: one class implementing `abstract::ElementAdapter` (tree navigation by id) and, via multiple inheritance, the per-type adapters it supports (`SlideAdapter`, `ParagraphAdapter`, …). Each `*_adapter(id)` returns diff --git a/CHANGELOG.md b/CHANGELOG.md index a7888e94e..79a80d5d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,9 @@ The release run heads these entries with the version and opens a fresh ## Unreleased +- A spreadsheet decodes in less memory: 626 MB peak instead of 914 MB on a + 297 MB `content.xml`. Rendered output is unchanged. + ## v6.12.0 - 2026-08-30 - New `Document::save(std::ostream &)` and `Document::save_to_memory()`, which diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 000000000..7d52d5078 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,41 @@ +{ + "version": 3, + "vendor": { + "conan": {} + }, + "cmakeMinimumRequired": { + "major": 3, + "minor": 15, + "patch": 0 + }, + "configurePresets": [ + { + "name": "conan-relwithdebinfo", + "displayName": "'conan-relwithdebinfo' config", + "description": "'conan-relwithdebinfo' configure using 'Unix Makefiles' generator", + "generator": "Unix Makefiles", + "cacheVariables": { + "CMAKE_POLICY_DEFAULT_CMP0091": "NEW", + "CMAKE_BUILD_TYPE": "RelWithDebInfo" + }, + "toolchainFile": "conan_toolchain.cmake", + "binaryDir": "/private/tmp/claude-501/-Users-andreas-odr-OpenDocument-core/50040636-38e1-4d0f-90ae-6ed308703180/scratchpad/wt776" + } + ], + "buildPresets": [ + { + "name": "conan-relwithdebinfo", + "configurePreset": "conan-relwithdebinfo", + "jobs": 12 + } + ], + "testPresets": [ + { + "name": "conan-relwithdebinfo", + "configurePreset": "conan-relwithdebinfo", + "execution": { + "jobs": 12 + } + } + ] +} \ No newline at end of file diff --git a/FindGTest.cmake b/FindGTest.cmake new file mode 100644 index 000000000..beba625e8 --- /dev/null +++ b/FindGTest.cmake @@ -0,0 +1,57 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(GTest_FIND_QUIETLY) + set(GTest_MESSAGE_MODE VERBOSE) +else() + set(GTest_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/module-GTestTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${gtest_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(GTest_VERSION_STRING "1.14.0") +set(GTest_INCLUDE_DIRS ${gtest_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(GTest_INCLUDE_DIR ${gtest_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(GTest_LIBRARIES ${gtest_LIBRARIES_RELWITHDEBINFO} ) +set(GTest_DEFINITIONS ${gtest_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${gtest_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${GTest_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + +include(FindPackageHandleStandardArgs) +set(GTest_FOUND 1) +set(GTest_VERSION "1.14.0") + +find_package_handle_standard_args(GTest + REQUIRED_VARS GTest_VERSION + VERSION_VAR GTest_VERSION) +mark_as_advanced(GTest_FOUND GTest_VERSION) + +set(GTest_FOUND 1) +set(GTest_VERSION "1.14.0") +mark_as_advanced(GTest_FOUND GTest_VERSION) + diff --git a/GTest-Target-relwithdebinfo.cmake b/GTest-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..0876efa94 --- /dev/null +++ b/GTest-Target-relwithdebinfo.cmake @@ -0,0 +1,286 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO "${gtest_FRAMEWORKS_RELWITHDEBINFO}" "${gtest_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(gtest_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET gtest_DEPS_TARGET) + add_library(gtest_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET gtest_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${gtest_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:GTest::gtest;GTest::gmock>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### gtest_DEPS_TARGET to all of them +conan_package_library_targets("${gtest_LIBS_RELWITHDEBINFO}" # libraries + "${gtest_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${gtest_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${gtest_LIBRARY_TYPE_RELWITHDEBINFO}" + "${gtest_IS_HOST_WINDOWS_RELWITHDEBINFO}" + gtest_DEPS_TARGET + gtest_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "gtest" # package_name + "${gtest_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${gtest_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## COMPONENTS TARGET PROPERTIES RelWithDebInfo ######################################## + + ########## COMPONENT GTest::gmock_main ############# + + set(gtest_GTest_gmock_main_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(gtest_GTest_gmock_main_FRAMEWORKS_FOUND_RELWITHDEBINFO "${gtest_GTest_gmock_main_FRAMEWORKS_RELWITHDEBINFO}" "${gtest_GTest_gmock_main_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(gtest_GTest_gmock_main_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET gtest_GTest_gmock_main_DEPS_TARGET) + add_library(gtest_GTest_gmock_main_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET gtest_GTest_gmock_main_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gmock_main_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_main_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_main_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'gtest_GTest_gmock_main_DEPS_TARGET' to all of them + conan_package_library_targets("${gtest_GTest_gmock_main_LIBS_RELWITHDEBINFO}" + "${gtest_GTest_gmock_main_LIB_DIRS_RELWITHDEBINFO}" + "${gtest_GTest_gmock_main_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${gtest_GTest_gmock_main_LIBRARY_TYPE_RELWITHDEBINFO}" + "${gtest_GTest_gmock_main_IS_HOST_WINDOWS_RELWITHDEBINFO}" + gtest_GTest_gmock_main_DEPS_TARGET + gtest_GTest_gmock_main_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "gtest_GTest_gmock_main" + "${gtest_GTest_gmock_main_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET GTest::gmock_main + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gmock_main_OBJECTS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_main_LIBRARIES_TARGETS}> + ) + + if("${gtest_GTest_gmock_main_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET GTest::gmock_main + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + gtest_GTest_gmock_main_DEPS_TARGET) + endif() + + set_property(TARGET GTest::gmock_main APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${gtest_GTest_gmock_main_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock_main APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${gtest_GTest_gmock_main_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock_main APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${gtest_GTest_gmock_main_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock_main APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${gtest_GTest_gmock_main_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock_main APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${gtest_GTest_gmock_main_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## COMPONENT GTest::gmock ############# + + set(gtest_GTest_gmock_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(gtest_GTest_gmock_FRAMEWORKS_FOUND_RELWITHDEBINFO "${gtest_GTest_gmock_FRAMEWORKS_RELWITHDEBINFO}" "${gtest_GTest_gmock_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(gtest_GTest_gmock_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET gtest_GTest_gmock_DEPS_TARGET) + add_library(gtest_GTest_gmock_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET gtest_GTest_gmock_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gmock_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'gtest_GTest_gmock_DEPS_TARGET' to all of them + conan_package_library_targets("${gtest_GTest_gmock_LIBS_RELWITHDEBINFO}" + "${gtest_GTest_gmock_LIB_DIRS_RELWITHDEBINFO}" + "${gtest_GTest_gmock_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${gtest_GTest_gmock_LIBRARY_TYPE_RELWITHDEBINFO}" + "${gtest_GTest_gmock_IS_HOST_WINDOWS_RELWITHDEBINFO}" + gtest_GTest_gmock_DEPS_TARGET + gtest_GTest_gmock_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "gtest_GTest_gmock" + "${gtest_GTest_gmock_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET GTest::gmock + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gmock_OBJECTS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_LIBRARIES_TARGETS}> + ) + + if("${gtest_GTest_gmock_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET GTest::gmock + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + gtest_GTest_gmock_DEPS_TARGET) + endif() + + set_property(TARGET GTest::gmock APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${gtest_GTest_gmock_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${gtest_GTest_gmock_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${gtest_GTest_gmock_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${gtest_GTest_gmock_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${gtest_GTest_gmock_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## COMPONENT GTest::gtest_main ############# + + set(gtest_GTest_gtest_main_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(gtest_GTest_gtest_main_FRAMEWORKS_FOUND_RELWITHDEBINFO "${gtest_GTest_gtest_main_FRAMEWORKS_RELWITHDEBINFO}" "${gtest_GTest_gtest_main_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(gtest_GTest_gtest_main_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET gtest_GTest_gtest_main_DEPS_TARGET) + add_library(gtest_GTest_gtest_main_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET gtest_GTest_gtest_main_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gtest_main_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_main_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_main_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'gtest_GTest_gtest_main_DEPS_TARGET' to all of them + conan_package_library_targets("${gtest_GTest_gtest_main_LIBS_RELWITHDEBINFO}" + "${gtest_GTest_gtest_main_LIB_DIRS_RELWITHDEBINFO}" + "${gtest_GTest_gtest_main_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${gtest_GTest_gtest_main_LIBRARY_TYPE_RELWITHDEBINFO}" + "${gtest_GTest_gtest_main_IS_HOST_WINDOWS_RELWITHDEBINFO}" + gtest_GTest_gtest_main_DEPS_TARGET + gtest_GTest_gtest_main_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "gtest_GTest_gtest_main" + "${gtest_GTest_gtest_main_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET GTest::gtest_main + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gtest_main_OBJECTS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_main_LIBRARIES_TARGETS}> + ) + + if("${gtest_GTest_gtest_main_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET GTest::gtest_main + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + gtest_GTest_gtest_main_DEPS_TARGET) + endif() + + set_property(TARGET GTest::gtest_main APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${gtest_GTest_gtest_main_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest_main APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${gtest_GTest_gtest_main_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest_main APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${gtest_GTest_gtest_main_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest_main APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${gtest_GTest_gtest_main_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest_main APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${gtest_GTest_gtest_main_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## COMPONENT GTest::gtest ############# + + set(gtest_GTest_gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(gtest_GTest_gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO "${gtest_GTest_gtest_FRAMEWORKS_RELWITHDEBINFO}" "${gtest_GTest_gtest_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(gtest_GTest_gtest_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET gtest_GTest_gtest_DEPS_TARGET) + add_library(gtest_GTest_gtest_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET gtest_GTest_gtest_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'gtest_GTest_gtest_DEPS_TARGET' to all of them + conan_package_library_targets("${gtest_GTest_gtest_LIBS_RELWITHDEBINFO}" + "${gtest_GTest_gtest_LIB_DIRS_RELWITHDEBINFO}" + "${gtest_GTest_gtest_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${gtest_GTest_gtest_LIBRARY_TYPE_RELWITHDEBINFO}" + "${gtest_GTest_gtest_IS_HOST_WINDOWS_RELWITHDEBINFO}" + gtest_GTest_gtest_DEPS_TARGET + gtest_GTest_gtest_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "gtest_GTest_gtest" + "${gtest_GTest_gtest_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET GTest::gtest + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gtest_OBJECTS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_LIBRARIES_TARGETS}> + ) + + if("${gtest_GTest_gtest_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET GTest::gtest + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + gtest_GTest_gtest_DEPS_TARGET) + endif() + + set_property(TARGET GTest::gtest APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${gtest_GTest_gtest_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${gtest_GTest_gtest_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${gtest_GTest_gtest_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${gtest_GTest_gtest_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${gtest_GTest_gtest_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## AGGREGATED GLOBAL TARGET WITH THE COMPONENTS ##################### + set_property(TARGET gtest::gtest APPEND PROPERTY INTERFACE_LINK_LIBRARIES GTest::gmock_main) + set_property(TARGET gtest::gtest APPEND PROPERTY INTERFACE_LINK_LIBRARIES GTest::gmock) + set_property(TARGET gtest::gtest APPEND PROPERTY INTERFACE_LINK_LIBRARIES GTest::gtest_main) + set_property(TARGET gtest::gtest APPEND PROPERTY INTERFACE_LINK_LIBRARIES GTest::gtest) + +########## For the modules (FindXXX) +set(gtest_LIBRARIES_RELWITHDEBINFO gtest::gtest) diff --git a/GTest-relwithdebinfo-armv8-data.cmake b/GTest-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..4e300b117 --- /dev/null +++ b/GTest-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,174 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +list(APPEND gtest_COMPONENT_NAMES GTest::gtest GTest::gtest_main GTest::gmock GTest::gmock_main) +list(REMOVE_DUPLICATES gtest_COMPONENT_NAMES) +if(DEFINED gtest_FIND_DEPENDENCY_NAMES) + list(APPEND gtest_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES gtest_FIND_DEPENDENCY_NAMES) +else() + set(gtest_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(gtest_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/b/gtestb6bb409d34b28/p") +set(gtest_BUILD_MODULES_PATHS_RELWITHDEBINFO ) + + +set(gtest_INCLUDE_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(gtest_RES_DIRS_RELWITHDEBINFO ) +set(gtest_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_OBJECTS_RELWITHDEBINFO ) +set(gtest_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(gtest_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(gtest_LIB_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(gtest_BIN_DIRS_RELWITHDEBINFO ) +set(gtest_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(gtest_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(gtest_LIBS_RELWITHDEBINFO gmock_main gmock gtest_main gtest) +set(gtest_SYSTEM_LIBS_RELWITHDEBINFO ) +set(gtest_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(gtest_FRAMEWORKS_RELWITHDEBINFO ) +set(gtest_BUILD_DIRS_RELWITHDEBINFO ) +set(gtest_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(gtest_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${gtest_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${gtest_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(gtest_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${gtest_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(gtest_COMPONENTS_RELWITHDEBINFO GTest::gtest GTest::gtest_main GTest::gmock GTest::gmock_main) +########### COMPONENT GTest::gmock_main VARIABLES ############################################ + +set(gtest_GTest_gmock_main_INCLUDE_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(gtest_GTest_gmock_main_LIB_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(gtest_GTest_gmock_main_BIN_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(gtest_GTest_gmock_main_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(gtest_GTest_gmock_main_RES_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_OBJECTS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(gtest_GTest_gmock_main_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(gtest_GTest_gmock_main_LIBS_RELWITHDEBINFO gmock_main) +set(gtest_GTest_gmock_main_SYSTEM_LIBS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_FRAMEWORKS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_DEPENDENCIES_RELWITHDEBINFO GTest::gmock) +set(gtest_GTest_gmock_main_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(gtest_GTest_gmock_main_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${gtest_GTest_gmock_main_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${gtest_GTest_gmock_main_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${gtest_GTest_gmock_main_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(gtest_GTest_gmock_main_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${gtest_GTest_gmock_main_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${gtest_GTest_gmock_main_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +########### COMPONENT GTest::gmock VARIABLES ############################################ + +set(gtest_GTest_gmock_INCLUDE_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(gtest_GTest_gmock_LIB_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(gtest_GTest_gmock_BIN_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(gtest_GTest_gmock_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(gtest_GTest_gmock_RES_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_OBJECTS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(gtest_GTest_gmock_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(gtest_GTest_gmock_LIBS_RELWITHDEBINFO gmock) +set(gtest_GTest_gmock_SYSTEM_LIBS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_FRAMEWORKS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_DEPENDENCIES_RELWITHDEBINFO GTest::gtest) +set(gtest_GTest_gmock_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(gtest_GTest_gmock_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${gtest_GTest_gmock_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${gtest_GTest_gmock_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${gtest_GTest_gmock_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(gtest_GTest_gmock_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${gtest_GTest_gmock_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${gtest_GTest_gmock_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +########### COMPONENT GTest::gtest_main VARIABLES ############################################ + +set(gtest_GTest_gtest_main_INCLUDE_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(gtest_GTest_gtest_main_LIB_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(gtest_GTest_gtest_main_BIN_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(gtest_GTest_gtest_main_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(gtest_GTest_gtest_main_RES_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_OBJECTS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(gtest_GTest_gtest_main_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(gtest_GTest_gtest_main_LIBS_RELWITHDEBINFO gtest_main) +set(gtest_GTest_gtest_main_SYSTEM_LIBS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_FRAMEWORKS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_DEPENDENCIES_RELWITHDEBINFO GTest::gtest) +set(gtest_GTest_gtest_main_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(gtest_GTest_gtest_main_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${gtest_GTest_gtest_main_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${gtest_GTest_gtest_main_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${gtest_GTest_gtest_main_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(gtest_GTest_gtest_main_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${gtest_GTest_gtest_main_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${gtest_GTest_gtest_main_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +########### COMPONENT GTest::gtest VARIABLES ############################################ + +set(gtest_GTest_gtest_INCLUDE_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(gtest_GTest_gtest_LIB_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(gtest_GTest_gtest_BIN_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(gtest_GTest_gtest_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(gtest_GTest_gtest_RES_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_OBJECTS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(gtest_GTest_gtest_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(gtest_GTest_gtest_LIBS_RELWITHDEBINFO gtest) +set(gtest_GTest_gtest_SYSTEM_LIBS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_FRAMEWORKS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_DEPENDENCIES_RELWITHDEBINFO ) +set(gtest_GTest_gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(gtest_GTest_gtest_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${gtest_GTest_gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${gtest_GTest_gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${gtest_GTest_gtest_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(gtest_GTest_gtest_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${gtest_GTest_gtest_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${gtest_GTest_gtest_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") \ No newline at end of file diff --git a/GTestConfig.cmake b/GTestConfig.cmake new file mode 100644 index 000000000..60bec5c50 --- /dev/null +++ b/GTestConfig.cmake @@ -0,0 +1,44 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(GTest_FIND_QUIETLY) + set(GTest_MESSAGE_MODE VERBOSE) +else() + set(GTest_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/GTestTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${gtest_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(GTest_VERSION_STRING "1.14.0") +set(GTest_INCLUDE_DIRS ${gtest_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(GTest_INCLUDE_DIR ${gtest_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(GTest_LIBRARIES ${gtest_LIBRARIES_RELWITHDEBINFO} ) +set(GTest_DEFINITIONS ${gtest_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${gtest_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${GTest_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + diff --git a/GTestConfigVersion.cmake b/GTestConfigVersion.cmake new file mode 100644 index 000000000..654fbd3ca --- /dev/null +++ b/GTestConfigVersion.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "1.14.0") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if("1.14.0" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1}) + else() + set(CVF_VERSION_MAJOR "1.14.0") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/GTestTargets.cmake b/GTestTargets.cmake new file mode 100644 index 000000000..4c095e28f --- /dev/null +++ b/GTestTargets.cmake @@ -0,0 +1,33 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/GTest-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${gtest_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${GTest_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET gtest::gtest) + add_library(gtest::gtest INTERFACE IMPORTED) + message(${GTest_MESSAGE_MODE} "Conan: Target declared 'gtest::gtest'") +endif() +if(NOT TARGET GTest::GTest) + add_library(GTest::GTest INTERFACE IMPORTED) + set_property(TARGET GTest::GTest PROPERTY INTERFACE_LINK_LIBRARIES GTest::gtest) +endif() +if(NOT TARGET GTest::Main) + add_library(GTest::Main INTERFACE IMPORTED) + set_property(TARGET GTest::Main PROPERTY INTERFACE_LINK_LIBRARIES GTest::gtest_main) +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/GTest-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file diff --git a/OpenJPEG-Target-relwithdebinfo.cmake b/OpenJPEG-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..eb73e2c10 --- /dev/null +++ b/OpenJPEG-Target-relwithdebinfo.cmake @@ -0,0 +1,71 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(openjpeg_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(openjpeg_FRAMEWORKS_FOUND_RELWITHDEBINFO "${openjpeg_FRAMEWORKS_RELWITHDEBINFO}" "${openjpeg_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(openjpeg_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET openjpeg_DEPS_TARGET) + add_library(openjpeg_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET openjpeg_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${openjpeg_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${openjpeg_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### openjpeg_DEPS_TARGET to all of them +conan_package_library_targets("${openjpeg_LIBS_RELWITHDEBINFO}" # libraries + "${openjpeg_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${openjpeg_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${openjpeg_LIBRARY_TYPE_RELWITHDEBINFO}" + "${openjpeg_IS_HOST_WINDOWS_RELWITHDEBINFO}" + openjpeg_DEPS_TARGET + openjpeg_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "openjpeg" # package_name + "${openjpeg_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${openjpeg_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## GLOBAL TARGET PROPERTIES RelWithDebInfo ######################################## + set_property(TARGET openjp2 + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${openjpeg_OBJECTS_RELWITHDEBINFO}> + $<$:${openjpeg_LIBRARIES_TARGETS}> + ) + + if("${openjpeg_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the package is not declaring any "cpp_info.libs" the package deps, system libs, + # frameworks etc are not linked to the imported targets and we need to do it to the + # global target + set_property(TARGET openjp2 + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + openjpeg_DEPS_TARGET) + endif() + + set_property(TARGET openjp2 + APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${openjpeg_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET openjp2 + APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${openjpeg_INCLUDE_DIRS_RELWITHDEBINFO}>) + # Necessary to find LINK shared libraries in Linux + set_property(TARGET openjp2 + APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${openjpeg_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET openjp2 + APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${openjpeg_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET openjp2 + APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${openjpeg_COMPILE_OPTIONS_RELWITHDEBINFO}>) + +########## For the modules (FindXXX) +set(openjpeg_LIBRARIES_RELWITHDEBINFO openjp2) diff --git a/OpenJPEG-relwithdebinfo-armv8-data.cmake b/OpenJPEG-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..4775d5635 --- /dev/null +++ b/OpenJPEG-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,50 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +set(openjpeg_COMPONENT_NAMES "") +if(DEFINED openjpeg_FIND_DEPENDENCY_NAMES) + list(APPEND openjpeg_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES openjpeg_FIND_DEPENDENCY_NAMES) +else() + set(openjpeg_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(openjpeg_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/b/openja715c9c610054/p") +set(openjpeg_BUILD_MODULES_PATHS_RELWITHDEBINFO "${openjpeg_PACKAGE_FOLDER_RELWITHDEBINFO}/lib/cmake/conan-official-openjpeg-variables.cmake") + + +set(openjpeg_INCLUDE_DIRS_RELWITHDEBINFO "${openjpeg_PACKAGE_FOLDER_RELWITHDEBINFO}/include" + "${openjpeg_PACKAGE_FOLDER_RELWITHDEBINFO}/include/openjpeg-2.5") +set(openjpeg_RES_DIRS_RELWITHDEBINFO ) +set(openjpeg_DEFINITIONS_RELWITHDEBINFO ) +set(openjpeg_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(openjpeg_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(openjpeg_OBJECTS_RELWITHDEBINFO ) +set(openjpeg_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(openjpeg_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(openjpeg_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(openjpeg_LIB_DIRS_RELWITHDEBINFO "${openjpeg_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(openjpeg_BIN_DIRS_RELWITHDEBINFO ) +set(openjpeg_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(openjpeg_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(openjpeg_LIBS_RELWITHDEBINFO openjp2) +set(openjpeg_SYSTEM_LIBS_RELWITHDEBINFO ) +set(openjpeg_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(openjpeg_FRAMEWORKS_RELWITHDEBINFO ) +set(openjpeg_BUILD_DIRS_RELWITHDEBINFO "${openjpeg_PACKAGE_FOLDER_RELWITHDEBINFO}/lib/cmake") +set(openjpeg_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(openjpeg_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${openjpeg_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${openjpeg_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(openjpeg_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${openjpeg_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${openjpeg_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${openjpeg_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(openjpeg_COMPONENTS_RELWITHDEBINFO ) \ No newline at end of file diff --git a/OpenJPEGConfig.cmake b/OpenJPEGConfig.cmake new file mode 100644 index 000000000..737831560 --- /dev/null +++ b/OpenJPEGConfig.cmake @@ -0,0 +1,44 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(OpenJPEG_FIND_QUIETLY) + set(OpenJPEG_MESSAGE_MODE VERBOSE) +else() + set(OpenJPEG_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/OpenJPEGTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${openjpeg_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(OpenJPEG_VERSION_STRING "2.5.4") +set(OpenJPEG_INCLUDE_DIRS ${openjpeg_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(OpenJPEG_INCLUDE_DIR ${openjpeg_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(OpenJPEG_LIBRARIES ${openjpeg_LIBRARIES_RELWITHDEBINFO} ) +set(OpenJPEG_DEFINITIONS ${openjpeg_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${openjpeg_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${OpenJPEG_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + diff --git a/OpenJPEGConfigVersion.cmake b/OpenJPEGConfigVersion.cmake new file mode 100644 index 000000000..e6ff03dd9 --- /dev/null +++ b/OpenJPEGConfigVersion.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "2.5.4") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if("2.5.4" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1}) + else() + set(CVF_VERSION_MAJOR "2.5.4") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/OpenJPEGTargets.cmake b/OpenJPEGTargets.cmake new file mode 100644 index 000000000..aa7614a2c --- /dev/null +++ b/OpenJPEGTargets.cmake @@ -0,0 +1,25 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/OpenJPEG-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${openjpeg_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${OpenJPEG_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET openjp2) + add_library(openjp2 INTERFACE IMPORTED) + message(${OpenJPEG_MESSAGE_MODE} "Conan: Target declared 'openjp2'") +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/OpenJPEG-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file diff --git a/cmakedeps_macros.cmake b/cmakedeps_macros.cmake new file mode 100644 index 000000000..8a9e1176b --- /dev/null +++ b/cmakedeps_macros.cmake @@ -0,0 +1,101 @@ + +macro(conan_find_apple_frameworks FRAMEWORKS_FOUND FRAMEWORKS FRAMEWORKS_DIRS) + if(APPLE) + foreach(_FRAMEWORK ${FRAMEWORKS}) + # https://cmake.org/pipermail/cmake-developers/2017-August/030199.html + find_library(CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND NAMES ${_FRAMEWORK} PATHS ${FRAMEWORKS_DIRS} CMAKE_FIND_ROOT_PATH_BOTH) + if(CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND) + list(APPEND ${FRAMEWORKS_FOUND} ${CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND}) + message(VERBOSE "Framework found! ${FRAMEWORKS_FOUND}") + else() + message(FATAL_ERROR "Framework library ${_FRAMEWORK} not found in paths: ${FRAMEWORKS_DIRS}") + endif() + endforeach() + endif() +endmacro() + +function(conan_package_library_targets libraries package_libdir package_bindir library_type + is_host_windows deps_target out_libraries_target config_suffix package_name no_soname_mode) + set(_out_libraries_target "") + + foreach(_LIBRARY_NAME ${libraries}) + if(CMAKE_SYSTEM_NAME MATCHES "Windows" AND NOT DEFINED MINGW AND CMAKE_VERSION VERSION_LESS "3.29") + # Backport logic from https://github.com/Kitware/CMake/commit/c6efbd78d86798573654d1a791f76de0e71bd93f + # which is only needed on versions older than 3.29 + # this allows finding static library files created by meson + # We are not affected by PATH-derived folders, because we call find_library with NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH + set(_original_find_library_suffixes "${CMAKE_FIND_LIBRARY_SUFFIXES}") + set(_original_find_library_prefixes "${CMAKE_FIND_LIBRARY_PREFIXES}") + set(CMAKE_FIND_LIBRARY_PREFIXES "" "lib") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.lib" ".lib" ".a") + endif() + find_library(CONAN_FOUND_LIBRARY NAMES ${_LIBRARY_NAME} PATHS ${package_libdir} + NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) + if(DEFINED _original_find_library_suffixes) + set(CMAKE_FIND_LIBRARY_SUFFIXES "${_original_find_library_suffixes}") + set(CMAKE_FIND_LIBRARY_PREFIXES "${_original_find_library_prefixes}") + unset(_original_find_library_suffixes) + unset(_original_find_library_prefixes) + endif() + if(CONAN_FOUND_LIBRARY) + message(VERBOSE "Conan: Library ${_LIBRARY_NAME} found ${CONAN_FOUND_LIBRARY}") + + # Create a micro-target for each lib/a found + # Allow only some characters for the target name + string(REGEX REPLACE "[^A-Za-z0-9.+_-]" "_" _LIBRARY_NAME ${_LIBRARY_NAME}) + set(_LIB_NAME CONAN_LIB::${package_name}_${_LIBRARY_NAME}${config_suffix}) + + if(is_host_windows AND library_type STREQUAL "SHARED") + # Store and reset the variable, so it doesn't leak + set(_OLD_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) + set(CMAKE_FIND_LIBRARY_SUFFIXES .dll ${CMAKE_FIND_LIBRARY_SUFFIXES}) + find_library(CONAN_SHARED_FOUND_LIBRARY NAMES ${_LIBRARY_NAME} PATHS ${package_bindir} + NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) + set(CMAKE_FIND_LIBRARY_SUFFIXES ${_OLD_CMAKE_FIND_LIBRARY_SUFFIXES}) + if(NOT CONAN_SHARED_FOUND_LIBRARY) + message(DEBUG "DLL library not found, creating UNKNOWN IMPORTED target, searched for: ${_LIBRARY_NAME}") + if(NOT TARGET ${_LIB_NAME}) + add_library(${_LIB_NAME} UNKNOWN IMPORTED) + endif() + set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_LOCATION${config_suffix} ${CONAN_FOUND_LIBRARY}) + else() + if(NOT TARGET ${_LIB_NAME}) + add_library(${_LIB_NAME} SHARED IMPORTED) + endif() + set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_LOCATION${config_suffix} ${CONAN_SHARED_FOUND_LIBRARY}) + set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_IMPLIB${config_suffix} ${CONAN_FOUND_LIBRARY}) + message(DEBUG "Found DLL and STATIC at ${CONAN_SHARED_FOUND_LIBRARY}, ${CONAN_FOUND_LIBRARY}") + endif() + unset(CONAN_SHARED_FOUND_LIBRARY CACHE) + else() + if(NOT TARGET ${_LIB_NAME}) + # library_type can be STATIC, still UNKNOWN (if no package type available in the recipe) or SHARED (but no windows) + add_library(${_LIB_NAME} ${library_type} IMPORTED) + endif() + message(DEBUG "Created target ${_LIB_NAME} ${library_type} IMPORTED") + set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_LOCATION${config_suffix} ${CONAN_FOUND_LIBRARY} IMPORTED_NO_SONAME ${no_soname_mode}) + endif() + list(APPEND _out_libraries_target ${_LIB_NAME}) + message(VERBOSE "Conan: Found: ${CONAN_FOUND_LIBRARY}") + else() + message(FATAL_ERROR "Library '${_LIBRARY_NAME}' not found in package. If '${_LIBRARY_NAME}' is a system library, declare it with 'cpp_info.system_libs' property") + endif() + unset(CONAN_FOUND_LIBRARY CACHE) + endforeach() + + # Add the dependencies target for all the imported libraries + foreach(_T ${_out_libraries_target}) + set_property(TARGET ${_T} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${deps_target}) + endforeach() + + set(${out_libraries_target} ${_out_libraries_target} PARENT_SCOPE) +endfunction() + +macro(check_build_type_defined) + # Check that the -DCMAKE_BUILD_TYPE argument is always present + get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) + if(NOT isMultiConfig AND NOT CMAKE_BUILD_TYPE) + message(FATAL_ERROR "Please, set the CMAKE_BUILD_TYPE variable when calling to CMake " + "adding the '-DCMAKE_BUILD_TYPE=' argument.") + endif() +endmacro() diff --git a/conan_toolchain.cmake b/conan_toolchain.cmake new file mode 100644 index 000000000..fdf1291d5 --- /dev/null +++ b/conan_toolchain.cmake @@ -0,0 +1,241 @@ +# Conan automatically generated toolchain file +# DO NOT EDIT MANUALLY, it will be overwritten + +# Avoid including toolchain file several times (bad if appending to variables like +# CMAKE_CXX_FLAGS. See https://github.com/android/ndk/issues/323 +include_guard() +message(STATUS "Using Conan toolchain: ${CMAKE_CURRENT_LIST_FILE}") +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeToolchain' generator only works with CMake >= 3.15") +endif() + +########## 'user_toolchain' block ############# +# Include one or more CMake user toolchain from tools.cmake.cmaketoolchain:user_toolchain + + + +########## 'generic_system' block ############# +# Definition of system, platform and toolset + + + + + +########## 'compilers' block ############# + +set(CMAKE_C_COMPILER "clang") +set(CMAKE_CXX_COMPILER "clang++") + + +########## 'apple_system' block ############# +# Define Apple architectures, sysroot, deployment target, bitcode, etc + +# Set the architectures for which to build. +set(CMAKE_OSX_ARCHITECTURES arm64 CACHE STRING "" FORCE) +# Setting CMAKE_OSX_SYSROOT SDK, when using Xcode generator the name is enough +# but full path is necessary for others +set(CMAKE_OSX_SYSROOT macosx CACHE STRING "" FORCE) +set(BITCODE "") +set(FOBJC_ARC "") +set(VISIBILITY "") +#Check if Xcode generator is used, since that will handle these flags automagically +if(CMAKE_GENERATOR MATCHES "Xcode") + message(DEBUG "Not setting any manual command-line buildflags, since Xcode is selected as generator.") +else() + string(APPEND CONAN_C_FLAGS " ${BITCODE} ${VISIBILITY}") + string(APPEND CONAN_CXX_FLAGS " ${BITCODE} ${VISIBILITY}") + # Objective-C/C++ specific flags + string(APPEND CONAN_OBJC_FLAGS " ${BITCODE} ${VISIBILITY} ${FOBJC_ARC}") + string(APPEND CONAN_OBJCXX_FLAGS " ${BITCODE} ${VISIBILITY} ${FOBJC_ARC}") +endif() + + +########## 'fpic' block ############# +# Defining CMAKE_POSITION_INDEPENDENT_CODE for static libraries when necessary + +message(STATUS "Conan toolchain: Setting CMAKE_POSITION_INDEPENDENT_CODE=ON (options.fPIC)") +set(CMAKE_POSITION_INDEPENDENT_CODE ON CACHE BOOL "Position independent code") + + +########## 'rpath_link_flags' block ############# +# Pass -rpath-link pointing to all directories with runtime libraries + + +########## 'libcxx' block ############# +# Definition of libcxx from 'compiler.libcxx' setting, defining the +# right CXX_FLAGS for that libcxx + +message(STATUS "Conan toolchain: Defining libcxx as C++ flags: -stdlib=libc++") +string(APPEND CONAN_CXX_FLAGS " -stdlib=libc++") + + +########## 'cppstd' block ############# +# Define the C++ and C standards from 'compiler.cppstd' and 'compiler.cstd' + +function(conan_modify_std_watch variable access value current_list_file stack) + set(conan_watched_std_variable "20") + if (${variable} STREQUAL "CMAKE_C_STANDARD") + set(conan_watched_std_variable "") + endif() + if ("${access}" STREQUAL "MODIFIED_ACCESS" AND NOT "${value}" STREQUAL "${conan_watched_std_variable}") + message(STATUS "Warning: Standard ${variable} value defined in conan_toolchain.cmake to ${conan_watched_std_variable} has been modified to ${value} by ${current_list_file}") + endif() + unset(conan_watched_std_variable) +endfunction() + +message(STATUS "Conan toolchain: C++ Standard 20 with extensions ON") +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_EXTENSIONS ON) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +variable_watch(CMAKE_CXX_STANDARD conan_modify_std_watch) + + +########## 'extra_flags' block ############# +# Include extra C++, C and linker flags from configuration tools.build:flags +# and from CMakeToolchain.extra__flags + +# Conan conf flags start: +string(APPEND CONAN_CXX_FLAGS " -fno-sanitize=all") +string(APPEND CONAN_C_FLAGS " -fno-sanitize=all") +# Conan conf flags end + + +########## 'cmake_flags_init' block ############# +# Define CMAKE__FLAGS from CONAN__FLAGS + +foreach(config IN LISTS CMAKE_CONFIGURATION_TYPES) + string(TOUPPER ${config} config) + if(DEFINED CONAN_CXX_FLAGS_${config}) + string(APPEND CMAKE_CXX_FLAGS_${config}_INIT " ${CONAN_CXX_FLAGS_${config}}") + endif() + if(DEFINED CONAN_C_FLAGS_${config}) + string(APPEND CMAKE_C_FLAGS_${config}_INIT " ${CONAN_C_FLAGS_${config}}") + endif() + if(DEFINED CONAN_SHARED_LINKER_FLAGS_${config}) + string(APPEND CMAKE_SHARED_LINKER_FLAGS_${config}_INIT " ${CONAN_SHARED_LINKER_FLAGS_${config}}") + endif() + if(DEFINED CONAN_EXE_LINKER_FLAGS_${config}) + string(APPEND CMAKE_EXE_LINKER_FLAGS_${config}_INIT " ${CONAN_EXE_LINKER_FLAGS_${config}}") + endif() +endforeach() + +if(DEFINED CONAN_CXX_FLAGS) + string(APPEND CMAKE_CXX_FLAGS_INIT " ${CONAN_CXX_FLAGS}") +endif() +if(DEFINED CONAN_C_FLAGS) + string(APPEND CMAKE_C_FLAGS_INIT " ${CONAN_C_FLAGS}") +endif() +if(DEFINED CONAN_SHARED_LINKER_FLAGS) + string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${CONAN_SHARED_LINKER_FLAGS}") +endif() +if(DEFINED CONAN_EXE_LINKER_FLAGS) + string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${CONAN_EXE_LINKER_FLAGS}") +endif() +if(DEFINED CONAN_OBJCXX_FLAGS) + string(APPEND CMAKE_OBJCXX_FLAGS_INIT " ${CONAN_OBJCXX_FLAGS}") +endif() +if(DEFINED CONAN_OBJC_FLAGS) + string(APPEND CMAKE_OBJC_FLAGS_INIT " ${CONAN_OBJC_FLAGS}") +endif() + + +########## 'extra_variables' block ############# +# Definition of extra CMake variables from tools.cmake.cmaketoolchain:extra_variables + + + +########## 'try_compile' block ############# +# Blocks after this one will not be added when running CMake try/checks +get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE ) +if(_CMAKE_IN_TRY_COMPILE) + message(STATUS "Running toolchain IN_TRY_COMPILE") + return() +endif() + + +########## 'find_paths' block ############# +# Define paths to find packages, programs, libraries, etc. +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/conan_cmakedeps_paths.cmake") + message(STATUS "Conan toolchain: Including CMakeDeps generated conan_cmakedeps_paths.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/conan_cmakedeps_paths.cmake") +else() + +set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON) + +# Definition of CMAKE_MODULE_PATH +list(PREPEND CMAKE_MODULE_PATH "/Users/andreas/.conan2/p/b/openja715c9c610054/p/lib/cmake") +# the generators folder (where conan generates files, like this toolchain) +list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) + +# Definition of CMAKE_PREFIX_PATH, CMAKE_XXXXX_PATH +# The explicitly defined "builddirs" of "host" context dependencies must be in PREFIX_PATH +list(PREPEND CMAKE_PREFIX_PATH "/Users/andreas/.conan2/p/b/openja715c9c610054/p/lib/cmake") +# The Conan local "generators" folder, where this toolchain is saved. +list(PREPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR} ) +list(PREPEND CMAKE_LIBRARY_PATH "/Users/andreas/.conan2/p/b/crypt4ff9b27e63670/p/lib" "/Users/andreas/.conan2/p/b/md4c0a60c9bc55651/p/lib" "/Users/andreas/.conan2/p/b/miniz5c80580ddaacd/p/lib" "/Users/andreas/.conan2/p/b/openja715c9c610054/p/lib" "/Users/andreas/.conan2/p/b/uchar435bc08c03cd6/p/lib" "/Users/andreas/.conan2/p/b/gtestb6bb409d34b28/p/lib") +list(PREPEND CMAKE_INCLUDE_PATH "/Users/andreas/.conan2/p/pugix676f7d1fa98b4/p/include" "/Users/andreas/.conan2/p/b/crypt4ff9b27e63670/p/include" "/Users/andreas/.conan2/p/b/md4c0a60c9bc55651/p/include" "/Users/andreas/.conan2/p/b/miniz5c80580ddaacd/p/include" "/Users/andreas/.conan2/p/b/miniz5c80580ddaacd/p/include/miniz" "/Users/andreas/.conan2/p/nlohmd014ef7748f4b/p/include" "/Users/andreas/.conan2/p/b/openja715c9c610054/p/include" "/Users/andreas/.conan2/p/b/openja715c9c610054/p/include/openjpeg-2.5" "/Users/andreas/.conan2/p/b/uchar435bc08c03cd6/p/include" "/Users/andreas/.conan2/p/utfcp412baeeda02ec/p/include" "/Users/andreas/.conan2/p/utfcp412baeeda02ec/p/include/utf8cpp" "/Users/andreas/.conan2/p/cpp-h320a4fd5aa060/p/include" "/Users/andreas/.conan2/p/cpp-h320a4fd5aa060/p/include/httplib" "/Users/andreas/.conan2/p/b/gtestb6bb409d34b28/p/include") +set(CONAN_RUNTIME_LIB_DIRS "/Users/andreas/.conan2/p/b/crypt4ff9b27e63670/p/lib" "/Users/andreas/.conan2/p/b/md4c0a60c9bc55651/p/lib" "/Users/andreas/.conan2/p/b/miniz5c80580ddaacd/p/lib" "/Users/andreas/.conan2/p/b/openja715c9c610054/p/lib" "/Users/andreas/.conan2/p/b/uchar435bc08c03cd6/p/lib" "/Users/andreas/.conan2/p/b/gtestb6bb409d34b28/p/lib" ) + +endif() + + +########## 'pkg_config' block ############# +# Define pkg-config from 'tools.gnu:pkg_config' executable and paths + +if (DEFINED ENV{PKG_CONFIG_PATH}) +set(ENV{PKG_CONFIG_PATH} "${CMAKE_CURRENT_LIST_DIR}:$ENV{PKG_CONFIG_PATH}") +else() +set(ENV{PKG_CONFIG_PATH} "${CMAKE_CURRENT_LIST_DIR}:") +endif() + + +########## 'rpath' block ############# +# Defining CMAKE_SKIP_RPATH + + + +########## 'shared' block ############# +# Define BUILD_SHARED_LIBS for shared libraries + +message(STATUS "Conan toolchain: Setting BUILD_SHARED_LIBS = OFF") +set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries") + + +########## 'output_dirs' block ############# +# Definition of CMAKE_INSTALL_XXX folders + +set(CMAKE_INSTALL_BINDIR "bin") +set(CMAKE_INSTALL_SBINDIR "bin") +set(CMAKE_INSTALL_LIBEXECDIR "bin") +set(CMAKE_INSTALL_LIBDIR "lib") +set(CMAKE_INSTALL_INCLUDEDIR "include") +set(CMAKE_INSTALL_OLDINCLUDEDIR "include") + + +########## 'variables' block ############# +# Definition of CMake variables from CMakeToolchain.variables values + +# Variables +set(CMAKE_PROJECT_VERSION "" CACHE STRING "Variable CMAKE_PROJECT_VERSION conan-toolchain defined") +set(ODR_TEST OFF CACHE BOOL "Variable ODR_TEST conan-toolchain defined") +set(ODR_WITH_LIBMAGIC "False" CACHE STRING "Variable ODR_WITH_LIBMAGIC conan-toolchain defined") +set(ODR_WITH_HTTP_SERVER "True" CACHE STRING "Variable ODR_WITH_HTTP_SERVER conan-toolchain defined") +set(ODR_CLI "True" CACHE STRING "Variable ODR_CLI conan-toolchain defined") +set(ODR_PYTHON "False" CACHE STRING "Variable ODR_PYTHON conan-toolchain defined") +set(ODR_JNI "False" CACHE STRING "Variable ODR_JNI conan-toolchain defined") +set(ODR_APPLE "False" CACHE STRING "Variable ODR_APPLE conan-toolchain defined") +set(ODR_WASM "False" CACHE STRING "Variable ODR_WASM conan-toolchain defined") +set(ODR_BUNDLE_ASSETS "False" CACHE STRING "Variable ODR_BUNDLE_ASSETS conan-toolchain defined") +# Variables per configuration + + + +########## 'preprocessor' block ############# +# Preprocessor definitions from CMakeToolchain.preprocessor_definitions values + +# Preprocessor definitions per configuration + + + +if(CMAKE_POLICY_DEFAULT_CMP0091) # Avoid unused and not-initialized warnings +endif() diff --git a/conanbuild.sh b/conanbuild.sh new file mode 100644 index 000000000..24e5251d2 --- /dev/null +++ b/conanbuild.sh @@ -0,0 +1 @@ +. "/private/tmp/claude-501/-Users-andreas-odr-OpenDocument-core/50040636-38e1-4d0f-90ae-6ed308703180/scratchpad/wt776/conanbuildenv-relwithdebinfo-armv8.sh" \ No newline at end of file diff --git a/conanbuildenv-relwithdebinfo-armv8.sh b/conanbuildenv-relwithdebinfo-armv8.sh new file mode 100644 index 000000000..89b914cf4 --- /dev/null +++ b/conanbuildenv-relwithdebinfo-armv8.sh @@ -0,0 +1,13 @@ +script_folder="/private/tmp/claude-501/-Users-andreas-odr-OpenDocument-core/50040636-38e1-4d0f-90ae-6ed308703180/scratchpad/wt776" +echo "echo Restoring environment" > "$script_folder/deactivate_conanbuildenv-relwithdebinfo-armv8.sh" +for v in +do + is_defined="true" + value=$(printenv $v) || is_defined="" || true + if [ -n "$value" ] || [ -n "$is_defined" ] + then + echo export "$v='$value'" >> "$script_folder/deactivate_conanbuildenv-relwithdebinfo-armv8.sh" + else + echo unset $v >> "$script_folder/deactivate_conanbuildenv-relwithdebinfo-armv8.sh" + fi +done diff --git a/conandeps_legacy.cmake b/conandeps_legacy.cmake new file mode 100644 index 000000000..52da83511 --- /dev/null +++ b/conandeps_legacy.cmake @@ -0,0 +1,15 @@ +message(STATUS "Conan: Using CMakeDeps conandeps_legacy.cmake aggregator via include()") +message(STATUS "Conan: It is recommended to use explicit find_package() per dependency instead") + +find_package(pugixml) +find_package(cryptopp) +find_package(md4c) +find_package(miniz) +find_package(nlohmann_json) +find_package(OpenJPEG) +find_package(uchardet) +find_package(utf8cpp) +find_package(httplib) +find_package(GTest) + +set(CONANDEPS_LEGACY pugixml::pugixml cryptopp::cryptopp md4c::md4c-html miniz::miniz nlohmann_json::nlohmann_json openjp2 uchardet::uchardet utf8cpp::utf8cpp httplib::httplib gtest::gtest ) \ No newline at end of file diff --git a/conanrun.sh b/conanrun.sh new file mode 100644 index 000000000..5b0d3adf0 --- /dev/null +++ b/conanrun.sh @@ -0,0 +1 @@ +. "/private/tmp/claude-501/-Users-andreas-odr-OpenDocument-core/50040636-38e1-4d0f-90ae-6ed308703180/scratchpad/wt776/conanrunenv-relwithdebinfo-armv8.sh" \ No newline at end of file diff --git a/conanrunenv-relwithdebinfo-armv8.sh b/conanrunenv-relwithdebinfo-armv8.sh new file mode 100644 index 000000000..82b413535 --- /dev/null +++ b/conanrunenv-relwithdebinfo-armv8.sh @@ -0,0 +1,13 @@ +script_folder="/private/tmp/claude-501/-Users-andreas-odr-OpenDocument-core/50040636-38e1-4d0f-90ae-6ed308703180/scratchpad/wt776" +echo "echo Restoring environment" > "$script_folder/deactivate_conanrunenv-relwithdebinfo-armv8.sh" +for v in +do + is_defined="true" + value=$(printenv $v) || is_defined="" || true + if [ -n "$value" ] || [ -n "$is_defined" ] + then + echo export "$v='$value'" >> "$script_folder/deactivate_conanrunenv-relwithdebinfo-armv8.sh" + else + echo unset $v >> "$script_folder/deactivate_conanrunenv-relwithdebinfo-armv8.sh" + fi +done diff --git a/cryptopp-Target-relwithdebinfo.cmake b/cryptopp-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..03f005547 --- /dev/null +++ b/cryptopp-Target-relwithdebinfo.cmake @@ -0,0 +1,103 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(cryptopp_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(cryptopp_FRAMEWORKS_FOUND_RELWITHDEBINFO "${cryptopp_FRAMEWORKS_RELWITHDEBINFO}" "${cryptopp_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(cryptopp_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET cryptopp_DEPS_TARGET) + add_library(cryptopp_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET cryptopp_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${cryptopp_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${cryptopp_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### cryptopp_DEPS_TARGET to all of them +conan_package_library_targets("${cryptopp_LIBS_RELWITHDEBINFO}" # libraries + "${cryptopp_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${cryptopp_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${cryptopp_LIBRARY_TYPE_RELWITHDEBINFO}" + "${cryptopp_IS_HOST_WINDOWS_RELWITHDEBINFO}" + cryptopp_DEPS_TARGET + cryptopp_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "cryptopp" # package_name + "${cryptopp_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${cryptopp_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## COMPONENTS TARGET PROPERTIES RelWithDebInfo ######################################## + + ########## COMPONENT cryptopp::cryptopp ############# + + set(cryptopp_cryptopp_cryptopp_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(cryptopp_cryptopp_cryptopp_FRAMEWORKS_FOUND_RELWITHDEBINFO "${cryptopp_cryptopp_cryptopp_FRAMEWORKS_RELWITHDEBINFO}" "${cryptopp_cryptopp_cryptopp_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(cryptopp_cryptopp_cryptopp_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET cryptopp_cryptopp_cryptopp_DEPS_TARGET) + add_library(cryptopp_cryptopp_cryptopp_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET cryptopp_cryptopp_cryptopp_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${cryptopp_cryptopp_cryptopp_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${cryptopp_cryptopp_cryptopp_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${cryptopp_cryptopp_cryptopp_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'cryptopp_cryptopp_cryptopp_DEPS_TARGET' to all of them + conan_package_library_targets("${cryptopp_cryptopp_cryptopp_LIBS_RELWITHDEBINFO}" + "${cryptopp_cryptopp_cryptopp_LIB_DIRS_RELWITHDEBINFO}" + "${cryptopp_cryptopp_cryptopp_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${cryptopp_cryptopp_cryptopp_LIBRARY_TYPE_RELWITHDEBINFO}" + "${cryptopp_cryptopp_cryptopp_IS_HOST_WINDOWS_RELWITHDEBINFO}" + cryptopp_cryptopp_cryptopp_DEPS_TARGET + cryptopp_cryptopp_cryptopp_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "cryptopp_cryptopp_cryptopp" + "${cryptopp_cryptopp_cryptopp_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET cryptopp::cryptopp + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${cryptopp_cryptopp_cryptopp_OBJECTS_RELWITHDEBINFO}> + $<$:${cryptopp_cryptopp_cryptopp_LIBRARIES_TARGETS}> + ) + + if("${cryptopp_cryptopp_cryptopp_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET cryptopp::cryptopp + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + cryptopp_cryptopp_cryptopp_DEPS_TARGET) + endif() + + set_property(TARGET cryptopp::cryptopp APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${cryptopp_cryptopp_cryptopp_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET cryptopp::cryptopp APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${cryptopp_cryptopp_cryptopp_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET cryptopp::cryptopp APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${cryptopp_cryptopp_cryptopp_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET cryptopp::cryptopp APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${cryptopp_cryptopp_cryptopp_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET cryptopp::cryptopp APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${cryptopp_cryptopp_cryptopp_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## AGGREGATED GLOBAL TARGET WITH THE COMPONENTS ##################### + set_property(TARGET cryptopp::cryptopp APPEND PROPERTY INTERFACE_LINK_LIBRARIES cryptopp::cryptopp) + +########## For the modules (FindXXX) +set(cryptopp_LIBRARIES_RELWITHDEBINFO cryptopp::cryptopp) diff --git a/cryptopp-config-version.cmake b/cryptopp-config-version.cmake new file mode 100644 index 000000000..de3cdb2af --- /dev/null +++ b/cryptopp-config-version.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "8.9.0") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if("8.9.0" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1}) + else() + set(CVF_VERSION_MAJOR "8.9.0") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/cryptopp-config.cmake b/cryptopp-config.cmake new file mode 100644 index 000000000..3704362b0 --- /dev/null +++ b/cryptopp-config.cmake @@ -0,0 +1,44 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(cryptopp_FIND_QUIETLY) + set(cryptopp_MESSAGE_MODE VERBOSE) +else() + set(cryptopp_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/cryptoppTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${cryptopp_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(cryptopp_VERSION_STRING "8.9.0") +set(cryptopp_INCLUDE_DIRS ${cryptopp_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(cryptopp_INCLUDE_DIR ${cryptopp_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(cryptopp_LIBRARIES ${cryptopp_LIBRARIES_RELWITHDEBINFO} ) +set(cryptopp_DEFINITIONS ${cryptopp_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${cryptopp_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${cryptopp_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + diff --git a/cryptopp-relwithdebinfo-armv8-data.cmake b/cryptopp-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..0e03a19cb --- /dev/null +++ b/cryptopp-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,81 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +list(APPEND cryptopp_COMPONENT_NAMES cryptopp::cryptopp) +list(REMOVE_DUPLICATES cryptopp_COMPONENT_NAMES) +if(DEFINED cryptopp_FIND_DEPENDENCY_NAMES) + list(APPEND cryptopp_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES cryptopp_FIND_DEPENDENCY_NAMES) +else() + set(cryptopp_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(cryptopp_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/b/crypt4ff9b27e63670/p") +set(cryptopp_BUILD_MODULES_PATHS_RELWITHDEBINFO ) + + +set(cryptopp_INCLUDE_DIRS_RELWITHDEBINFO "${cryptopp_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(cryptopp_RES_DIRS_RELWITHDEBINFO ) +set(cryptopp_DEFINITIONS_RELWITHDEBINFO ) +set(cryptopp_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(cryptopp_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(cryptopp_OBJECTS_RELWITHDEBINFO ) +set(cryptopp_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(cryptopp_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(cryptopp_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(cryptopp_LIB_DIRS_RELWITHDEBINFO "${cryptopp_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(cryptopp_BIN_DIRS_RELWITHDEBINFO ) +set(cryptopp_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(cryptopp_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(cryptopp_LIBS_RELWITHDEBINFO cryptopp) +set(cryptopp_SYSTEM_LIBS_RELWITHDEBINFO ) +set(cryptopp_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(cryptopp_FRAMEWORKS_RELWITHDEBINFO ) +set(cryptopp_BUILD_DIRS_RELWITHDEBINFO ) +set(cryptopp_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(cryptopp_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${cryptopp_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${cryptopp_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(cryptopp_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${cryptopp_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${cryptopp_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${cryptopp_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(cryptopp_COMPONENTS_RELWITHDEBINFO cryptopp::cryptopp) +########### COMPONENT cryptopp::cryptopp VARIABLES ############################################ + +set(cryptopp_cryptopp_cryptopp_INCLUDE_DIRS_RELWITHDEBINFO "${cryptopp_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(cryptopp_cryptopp_cryptopp_LIB_DIRS_RELWITHDEBINFO "${cryptopp_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(cryptopp_cryptopp_cryptopp_BIN_DIRS_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(cryptopp_cryptopp_cryptopp_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(cryptopp_cryptopp_cryptopp_RES_DIRS_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_DEFINITIONS_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_OBJECTS_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(cryptopp_cryptopp_cryptopp_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(cryptopp_cryptopp_cryptopp_LIBS_RELWITHDEBINFO cryptopp) +set(cryptopp_cryptopp_cryptopp_SYSTEM_LIBS_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_FRAMEWORKS_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_DEPENDENCIES_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(cryptopp_cryptopp_cryptopp_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(cryptopp_cryptopp_cryptopp_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${cryptopp_cryptopp_cryptopp_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${cryptopp_cryptopp_cryptopp_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${cryptopp_cryptopp_cryptopp_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(cryptopp_cryptopp_cryptopp_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${cryptopp_cryptopp_cryptopp_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${cryptopp_cryptopp_cryptopp_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") \ No newline at end of file diff --git a/cryptoppTargets.cmake b/cryptoppTargets.cmake new file mode 100644 index 000000000..20875aada --- /dev/null +++ b/cryptoppTargets.cmake @@ -0,0 +1,29 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/cryptopp-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${cryptopp_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${cryptopp_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET cryptopp::cryptopp) + add_library(cryptopp::cryptopp INTERFACE IMPORTED) + message(${cryptopp_MESSAGE_MODE} "Conan: Target declared 'cryptopp::cryptopp'") +endif() +if(NOT TARGET cryptopp-static) + add_library(cryptopp-static INTERFACE IMPORTED) + set_property(TARGET cryptopp-static PROPERTY INTERFACE_LINK_LIBRARIES cryptopp::cryptopp) +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/cryptopp-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file diff --git a/deactivate_conanbuild.sh b/deactivate_conanbuild.sh new file mode 100644 index 000000000..1812edaa1 --- /dev/null +++ b/deactivate_conanbuild.sh @@ -0,0 +1 @@ +. "/private/tmp/claude-501/-Users-andreas-odr-OpenDocument-core/50040636-38e1-4d0f-90ae-6ed308703180/scratchpad/wt776/deactivate_conanbuildenv-relwithdebinfo-armv8.sh" \ No newline at end of file diff --git a/deactivate_conanrun.sh b/deactivate_conanrun.sh new file mode 100644 index 000000000..ed308944c --- /dev/null +++ b/deactivate_conanrun.sh @@ -0,0 +1 @@ +. "/private/tmp/claude-501/-Users-andreas-odr-OpenDocument-core/50040636-38e1-4d0f-90ae-6ed308703180/scratchpad/wt776/deactivate_conanrunenv-relwithdebinfo-armv8.sh" \ No newline at end of file diff --git a/httplib-Target-relwithdebinfo.cmake b/httplib-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..ec0184453 --- /dev/null +++ b/httplib-Target-relwithdebinfo.cmake @@ -0,0 +1,71 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(cpp-httplib_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(cpp-httplib_FRAMEWORKS_FOUND_RELWITHDEBINFO "${cpp-httplib_FRAMEWORKS_RELWITHDEBINFO}" "${cpp-httplib_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(cpp-httplib_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET cpp-httplib_DEPS_TARGET) + add_library(cpp-httplib_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET cpp-httplib_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${cpp-httplib_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${cpp-httplib_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### cpp-httplib_DEPS_TARGET to all of them +conan_package_library_targets("${cpp-httplib_LIBS_RELWITHDEBINFO}" # libraries + "${cpp-httplib_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${cpp-httplib_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${cpp-httplib_LIBRARY_TYPE_RELWITHDEBINFO}" + "${cpp-httplib_IS_HOST_WINDOWS_RELWITHDEBINFO}" + cpp-httplib_DEPS_TARGET + cpp-httplib_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "cpp-httplib" # package_name + "${cpp-httplib_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${cpp-httplib_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## GLOBAL TARGET PROPERTIES RelWithDebInfo ######################################## + set_property(TARGET httplib::httplib + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${cpp-httplib_OBJECTS_RELWITHDEBINFO}> + $<$:${cpp-httplib_LIBRARIES_TARGETS}> + ) + + if("${cpp-httplib_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the package is not declaring any "cpp_info.libs" the package deps, system libs, + # frameworks etc are not linked to the imported targets and we need to do it to the + # global target + set_property(TARGET httplib::httplib + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + cpp-httplib_DEPS_TARGET) + endif() + + set_property(TARGET httplib::httplib + APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${cpp-httplib_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET httplib::httplib + APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${cpp-httplib_INCLUDE_DIRS_RELWITHDEBINFO}>) + # Necessary to find LINK shared libraries in Linux + set_property(TARGET httplib::httplib + APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${cpp-httplib_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET httplib::httplib + APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${cpp-httplib_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET httplib::httplib + APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${cpp-httplib_COMPILE_OPTIONS_RELWITHDEBINFO}>) + +########## For the modules (FindXXX) +set(cpp-httplib_LIBRARIES_RELWITHDEBINFO httplib::httplib) diff --git a/httplib-config-version.cmake b/httplib-config-version.cmake new file mode 100644 index 000000000..9d21aae7d --- /dev/null +++ b/httplib-config-version.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "0.47.0") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if("0.47.0" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1}) + else() + set(CVF_VERSION_MAJOR "0.47.0") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/httplib-config.cmake b/httplib-config.cmake new file mode 100644 index 000000000..3ef4d8422 --- /dev/null +++ b/httplib-config.cmake @@ -0,0 +1,44 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(httplib_FIND_QUIETLY) + set(httplib_MESSAGE_MODE VERBOSE) +else() + set(httplib_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/httplibTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${cpp-httplib_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(httplib_VERSION_STRING "0.47.0") +set(httplib_INCLUDE_DIRS ${cpp-httplib_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(httplib_INCLUDE_DIR ${cpp-httplib_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(httplib_LIBRARIES ${cpp-httplib_LIBRARIES_RELWITHDEBINFO} ) +set(httplib_DEFINITIONS ${cpp-httplib_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${cpp-httplib_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${httplib_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + diff --git a/httplib-relwithdebinfo-armv8-data.cmake b/httplib-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..8852f5215 --- /dev/null +++ b/httplib-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,50 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +set(cpp-httplib_COMPONENT_NAMES "") +if(DEFINED cpp-httplib_FIND_DEPENDENCY_NAMES) + list(APPEND cpp-httplib_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES cpp-httplib_FIND_DEPENDENCY_NAMES) +else() + set(cpp-httplib_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(cpp-httplib_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/cpp-h320a4fd5aa060/p") +set(cpp-httplib_BUILD_MODULES_PATHS_RELWITHDEBINFO ) + + +set(cpp-httplib_INCLUDE_DIRS_RELWITHDEBINFO "${cpp-httplib_PACKAGE_FOLDER_RELWITHDEBINFO}/include" + "${cpp-httplib_PACKAGE_FOLDER_RELWITHDEBINFO}/include/httplib") +set(cpp-httplib_RES_DIRS_RELWITHDEBINFO ) +set(cpp-httplib_DEFINITIONS_RELWITHDEBINFO "-DCPPHTTPLIB_USE_NON_BLOCKING_GETADDRINFO") +set(cpp-httplib_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(cpp-httplib_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(cpp-httplib_OBJECTS_RELWITHDEBINFO ) +set(cpp-httplib_COMPILE_DEFINITIONS_RELWITHDEBINFO "CPPHTTPLIB_USE_NON_BLOCKING_GETADDRINFO") +set(cpp-httplib_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(cpp-httplib_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(cpp-httplib_LIB_DIRS_RELWITHDEBINFO ) +set(cpp-httplib_BIN_DIRS_RELWITHDEBINFO ) +set(cpp-httplib_LIBRARY_TYPE_RELWITHDEBINFO UNKNOWN) +set(cpp-httplib_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(cpp-httplib_LIBS_RELWITHDEBINFO ) +set(cpp-httplib_SYSTEM_LIBS_RELWITHDEBINFO ) +set(cpp-httplib_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(cpp-httplib_FRAMEWORKS_RELWITHDEBINFO CoreFoundation CFNetwork) +set(cpp-httplib_BUILD_DIRS_RELWITHDEBINFO ) +set(cpp-httplib_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(cpp-httplib_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${cpp-httplib_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${cpp-httplib_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(cpp-httplib_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${cpp-httplib_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${cpp-httplib_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${cpp-httplib_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(cpp-httplib_COMPONENTS_RELWITHDEBINFO ) \ No newline at end of file diff --git a/httplibTargets.cmake b/httplibTargets.cmake new file mode 100644 index 000000000..e73ff62e5 --- /dev/null +++ b/httplibTargets.cmake @@ -0,0 +1,25 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/httplib-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${cpp-httplib_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${httplib_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET httplib::httplib) + add_library(httplib::httplib INTERFACE IMPORTED) + message(${httplib_MESSAGE_MODE} "Conan: Target declared 'httplib::httplib'") +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/httplib-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file diff --git a/md4c-Target-relwithdebinfo.cmake b/md4c-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..c57682588 --- /dev/null +++ b/md4c-Target-relwithdebinfo.cmake @@ -0,0 +1,164 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(md4c_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(md4c_FRAMEWORKS_FOUND_RELWITHDEBINFO "${md4c_FRAMEWORKS_RELWITHDEBINFO}" "${md4c_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(md4c_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET md4c_DEPS_TARGET) + add_library(md4c_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET md4c_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${md4c_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${md4c_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:md4c::md4c>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### md4c_DEPS_TARGET to all of them +conan_package_library_targets("${md4c_LIBS_RELWITHDEBINFO}" # libraries + "${md4c_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${md4c_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${md4c_LIBRARY_TYPE_RELWITHDEBINFO}" + "${md4c_IS_HOST_WINDOWS_RELWITHDEBINFO}" + md4c_DEPS_TARGET + md4c_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "md4c" # package_name + "${md4c_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${md4c_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## COMPONENTS TARGET PROPERTIES RelWithDebInfo ######################################## + + ########## COMPONENT md4c::md4c-html ############# + + set(md4c_md4c_md4c-html_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(md4c_md4c_md4c-html_FRAMEWORKS_FOUND_RELWITHDEBINFO "${md4c_md4c_md4c-html_FRAMEWORKS_RELWITHDEBINFO}" "${md4c_md4c_md4c-html_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(md4c_md4c_md4c-html_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET md4c_md4c_md4c-html_DEPS_TARGET) + add_library(md4c_md4c_md4c-html_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET md4c_md4c_md4c-html_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${md4c_md4c_md4c-html_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${md4c_md4c_md4c-html_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${md4c_md4c_md4c-html_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'md4c_md4c_md4c-html_DEPS_TARGET' to all of them + conan_package_library_targets("${md4c_md4c_md4c-html_LIBS_RELWITHDEBINFO}" + "${md4c_md4c_md4c-html_LIB_DIRS_RELWITHDEBINFO}" + "${md4c_md4c_md4c-html_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${md4c_md4c_md4c-html_LIBRARY_TYPE_RELWITHDEBINFO}" + "${md4c_md4c_md4c-html_IS_HOST_WINDOWS_RELWITHDEBINFO}" + md4c_md4c_md4c-html_DEPS_TARGET + md4c_md4c_md4c-html_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "md4c_md4c_md4c-html" + "${md4c_md4c_md4c-html_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET md4c::md4c-html + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${md4c_md4c_md4c-html_OBJECTS_RELWITHDEBINFO}> + $<$:${md4c_md4c_md4c-html_LIBRARIES_TARGETS}> + ) + + if("${md4c_md4c_md4c-html_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET md4c::md4c-html + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + md4c_md4c_md4c-html_DEPS_TARGET) + endif() + + set_property(TARGET md4c::md4c-html APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${md4c_md4c_md4c-html_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET md4c::md4c-html APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${md4c_md4c_md4c-html_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET md4c::md4c-html APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${md4c_md4c_md4c-html_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET md4c::md4c-html APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${md4c_md4c_md4c-html_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET md4c::md4c-html APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${md4c_md4c_md4c-html_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## COMPONENT md4c::md4c ############# + + set(md4c_md4c_md4c_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(md4c_md4c_md4c_FRAMEWORKS_FOUND_RELWITHDEBINFO "${md4c_md4c_md4c_FRAMEWORKS_RELWITHDEBINFO}" "${md4c_md4c_md4c_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(md4c_md4c_md4c_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET md4c_md4c_md4c_DEPS_TARGET) + add_library(md4c_md4c_md4c_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET md4c_md4c_md4c_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${md4c_md4c_md4c_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${md4c_md4c_md4c_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${md4c_md4c_md4c_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'md4c_md4c_md4c_DEPS_TARGET' to all of them + conan_package_library_targets("${md4c_md4c_md4c_LIBS_RELWITHDEBINFO}" + "${md4c_md4c_md4c_LIB_DIRS_RELWITHDEBINFO}" + "${md4c_md4c_md4c_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${md4c_md4c_md4c_LIBRARY_TYPE_RELWITHDEBINFO}" + "${md4c_md4c_md4c_IS_HOST_WINDOWS_RELWITHDEBINFO}" + md4c_md4c_md4c_DEPS_TARGET + md4c_md4c_md4c_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "md4c_md4c_md4c" + "${md4c_md4c_md4c_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET md4c::md4c + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${md4c_md4c_md4c_OBJECTS_RELWITHDEBINFO}> + $<$:${md4c_md4c_md4c_LIBRARIES_TARGETS}> + ) + + if("${md4c_md4c_md4c_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET md4c::md4c + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + md4c_md4c_md4c_DEPS_TARGET) + endif() + + set_property(TARGET md4c::md4c APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${md4c_md4c_md4c_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET md4c::md4c APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${md4c_md4c_md4c_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET md4c::md4c APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${md4c_md4c_md4c_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET md4c::md4c APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${md4c_md4c_md4c_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET md4c::md4c APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${md4c_md4c_md4c_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## AGGREGATED GLOBAL TARGET WITH THE COMPONENTS ##################### + set_property(TARGET md4c::md4c-html APPEND PROPERTY INTERFACE_LINK_LIBRARIES md4c::md4c-html) + set_property(TARGET md4c::md4c-html APPEND PROPERTY INTERFACE_LINK_LIBRARIES md4c::md4c) + +########## For the modules (FindXXX) +set(md4c_LIBRARIES_RELWITHDEBINFO md4c::md4c-html) diff --git a/md4c-config-version.cmake b/md4c-config-version.cmake new file mode 100644 index 000000000..53adccac8 --- /dev/null +++ b/md4c-config-version.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "0.5.2") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if("0.5.2" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1}) + else() + set(CVF_VERSION_MAJOR "0.5.2") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/md4c-config.cmake b/md4c-config.cmake new file mode 100644 index 000000000..4bd89e4ae --- /dev/null +++ b/md4c-config.cmake @@ -0,0 +1,44 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(md4c_FIND_QUIETLY) + set(md4c_MESSAGE_MODE VERBOSE) +else() + set(md4c_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/md4cTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${md4c_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(md4c_VERSION_STRING "0.5.2") +set(md4c_INCLUDE_DIRS ${md4c_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(md4c_INCLUDE_DIR ${md4c_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(md4c_LIBRARIES ${md4c_LIBRARIES_RELWITHDEBINFO} ) +set(md4c_DEFINITIONS ${md4c_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${md4c_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${md4c_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + diff --git a/md4c-relwithdebinfo-armv8-data.cmake b/md4c-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..b669aa1e3 --- /dev/null +++ b/md4c-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,112 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +list(APPEND md4c_COMPONENT_NAMES md4c::md4c md4c::md4c-html) +list(REMOVE_DUPLICATES md4c_COMPONENT_NAMES) +if(DEFINED md4c_FIND_DEPENDENCY_NAMES) + list(APPEND md4c_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES md4c_FIND_DEPENDENCY_NAMES) +else() + set(md4c_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(md4c_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/b/md4c0a60c9bc55651/p") +set(md4c_BUILD_MODULES_PATHS_RELWITHDEBINFO ) + + +set(md4c_INCLUDE_DIRS_RELWITHDEBINFO "${md4c_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(md4c_RES_DIRS_RELWITHDEBINFO ) +set(md4c_DEFINITIONS_RELWITHDEBINFO ) +set(md4c_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(md4c_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(md4c_OBJECTS_RELWITHDEBINFO ) +set(md4c_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(md4c_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(md4c_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(md4c_LIB_DIRS_RELWITHDEBINFO "${md4c_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(md4c_BIN_DIRS_RELWITHDEBINFO ) +set(md4c_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(md4c_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(md4c_LIBS_RELWITHDEBINFO md4c-html md4c) +set(md4c_SYSTEM_LIBS_RELWITHDEBINFO ) +set(md4c_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(md4c_FRAMEWORKS_RELWITHDEBINFO ) +set(md4c_BUILD_DIRS_RELWITHDEBINFO ) +set(md4c_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(md4c_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${md4c_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${md4c_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(md4c_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${md4c_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${md4c_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${md4c_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(md4c_COMPONENTS_RELWITHDEBINFO md4c::md4c md4c::md4c-html) +########### COMPONENT md4c::md4c-html VARIABLES ############################################ + +set(md4c_md4c_md4c-html_INCLUDE_DIRS_RELWITHDEBINFO "${md4c_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(md4c_md4c_md4c-html_LIB_DIRS_RELWITHDEBINFO "${md4c_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(md4c_md4c_md4c-html_BIN_DIRS_RELWITHDEBINFO ) +set(md4c_md4c_md4c-html_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(md4c_md4c_md4c-html_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(md4c_md4c_md4c-html_RES_DIRS_RELWITHDEBINFO ) +set(md4c_md4c_md4c-html_DEFINITIONS_RELWITHDEBINFO ) +set(md4c_md4c_md4c-html_OBJECTS_RELWITHDEBINFO ) +set(md4c_md4c_md4c-html_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(md4c_md4c_md4c-html_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(md4c_md4c_md4c-html_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(md4c_md4c_md4c-html_LIBS_RELWITHDEBINFO md4c-html) +set(md4c_md4c_md4c-html_SYSTEM_LIBS_RELWITHDEBINFO ) +set(md4c_md4c_md4c-html_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(md4c_md4c_md4c-html_FRAMEWORKS_RELWITHDEBINFO ) +set(md4c_md4c_md4c-html_DEPENDENCIES_RELWITHDEBINFO md4c::md4c) +set(md4c_md4c_md4c-html_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(md4c_md4c_md4c-html_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(md4c_md4c_md4c-html_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(md4c_md4c_md4c-html_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${md4c_md4c_md4c-html_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${md4c_md4c_md4c-html_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${md4c_md4c_md4c-html_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(md4c_md4c_md4c-html_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${md4c_md4c_md4c-html_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${md4c_md4c_md4c-html_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +########### COMPONENT md4c::md4c VARIABLES ############################################ + +set(md4c_md4c_md4c_INCLUDE_DIRS_RELWITHDEBINFO "${md4c_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(md4c_md4c_md4c_LIB_DIRS_RELWITHDEBINFO "${md4c_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(md4c_md4c_md4c_BIN_DIRS_RELWITHDEBINFO ) +set(md4c_md4c_md4c_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(md4c_md4c_md4c_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(md4c_md4c_md4c_RES_DIRS_RELWITHDEBINFO ) +set(md4c_md4c_md4c_DEFINITIONS_RELWITHDEBINFO ) +set(md4c_md4c_md4c_OBJECTS_RELWITHDEBINFO ) +set(md4c_md4c_md4c_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(md4c_md4c_md4c_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(md4c_md4c_md4c_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(md4c_md4c_md4c_LIBS_RELWITHDEBINFO md4c) +set(md4c_md4c_md4c_SYSTEM_LIBS_RELWITHDEBINFO ) +set(md4c_md4c_md4c_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(md4c_md4c_md4c_FRAMEWORKS_RELWITHDEBINFO ) +set(md4c_md4c_md4c_DEPENDENCIES_RELWITHDEBINFO ) +set(md4c_md4c_md4c_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(md4c_md4c_md4c_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(md4c_md4c_md4c_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(md4c_md4c_md4c_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${md4c_md4c_md4c_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${md4c_md4c_md4c_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${md4c_md4c_md4c_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(md4c_md4c_md4c_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${md4c_md4c_md4c_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${md4c_md4c_md4c_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") \ No newline at end of file diff --git a/md4cTargets.cmake b/md4cTargets.cmake new file mode 100644 index 000000000..217549ca8 --- /dev/null +++ b/md4cTargets.cmake @@ -0,0 +1,25 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/md4c-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${md4c_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${md4c_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET md4c::md4c-html) + add_library(md4c::md4c-html INTERFACE IMPORTED) + message(${md4c_MESSAGE_MODE} "Conan: Target declared 'md4c::md4c-html'") +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/md4c-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file diff --git a/miniz-Target-relwithdebinfo.cmake b/miniz-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..37346f466 --- /dev/null +++ b/miniz-Target-relwithdebinfo.cmake @@ -0,0 +1,71 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(miniz_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(miniz_FRAMEWORKS_FOUND_RELWITHDEBINFO "${miniz_FRAMEWORKS_RELWITHDEBINFO}" "${miniz_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(miniz_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET miniz_DEPS_TARGET) + add_library(miniz_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET miniz_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${miniz_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${miniz_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### miniz_DEPS_TARGET to all of them +conan_package_library_targets("${miniz_LIBS_RELWITHDEBINFO}" # libraries + "${miniz_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${miniz_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${miniz_LIBRARY_TYPE_RELWITHDEBINFO}" + "${miniz_IS_HOST_WINDOWS_RELWITHDEBINFO}" + miniz_DEPS_TARGET + miniz_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "miniz" # package_name + "${miniz_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${miniz_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## GLOBAL TARGET PROPERTIES RelWithDebInfo ######################################## + set_property(TARGET miniz::miniz + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${miniz_OBJECTS_RELWITHDEBINFO}> + $<$:${miniz_LIBRARIES_TARGETS}> + ) + + if("${miniz_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the package is not declaring any "cpp_info.libs" the package deps, system libs, + # frameworks etc are not linked to the imported targets and we need to do it to the + # global target + set_property(TARGET miniz::miniz + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + miniz_DEPS_TARGET) + endif() + + set_property(TARGET miniz::miniz + APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${miniz_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET miniz::miniz + APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${miniz_INCLUDE_DIRS_RELWITHDEBINFO}>) + # Necessary to find LINK shared libraries in Linux + set_property(TARGET miniz::miniz + APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${miniz_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET miniz::miniz + APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${miniz_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET miniz::miniz + APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${miniz_COMPILE_OPTIONS_RELWITHDEBINFO}>) + +########## For the modules (FindXXX) +set(miniz_LIBRARIES_RELWITHDEBINFO miniz::miniz) diff --git a/miniz-config-version.cmake b/miniz-config-version.cmake new file mode 100644 index 000000000..5ad77687e --- /dev/null +++ b/miniz-config-version.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "3.1.1") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if("3.1.1" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1}) + else() + set(CVF_VERSION_MAJOR "3.1.1") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/miniz-config.cmake b/miniz-config.cmake new file mode 100644 index 000000000..59f1f5ff2 --- /dev/null +++ b/miniz-config.cmake @@ -0,0 +1,44 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(miniz_FIND_QUIETLY) + set(miniz_MESSAGE_MODE VERBOSE) +else() + set(miniz_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/minizTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${miniz_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(miniz_VERSION_STRING "3.1.1") +set(miniz_INCLUDE_DIRS ${miniz_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(miniz_INCLUDE_DIR ${miniz_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(miniz_LIBRARIES ${miniz_LIBRARIES_RELWITHDEBINFO} ) +set(miniz_DEFINITIONS ${miniz_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${miniz_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${miniz_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + diff --git a/miniz-relwithdebinfo-armv8-data.cmake b/miniz-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..93dcec09b --- /dev/null +++ b/miniz-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,50 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +set(miniz_COMPONENT_NAMES "") +if(DEFINED miniz_FIND_DEPENDENCY_NAMES) + list(APPEND miniz_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES miniz_FIND_DEPENDENCY_NAMES) +else() + set(miniz_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(miniz_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/b/miniz5c80580ddaacd/p") +set(miniz_BUILD_MODULES_PATHS_RELWITHDEBINFO ) + + +set(miniz_INCLUDE_DIRS_RELWITHDEBINFO "${miniz_PACKAGE_FOLDER_RELWITHDEBINFO}/include" + "${miniz_PACKAGE_FOLDER_RELWITHDEBINFO}/include/miniz") +set(miniz_RES_DIRS_RELWITHDEBINFO ) +set(miniz_DEFINITIONS_RELWITHDEBINFO ) +set(miniz_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(miniz_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(miniz_OBJECTS_RELWITHDEBINFO ) +set(miniz_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(miniz_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(miniz_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(miniz_LIB_DIRS_RELWITHDEBINFO "${miniz_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(miniz_BIN_DIRS_RELWITHDEBINFO ) +set(miniz_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(miniz_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(miniz_LIBS_RELWITHDEBINFO miniz) +set(miniz_SYSTEM_LIBS_RELWITHDEBINFO ) +set(miniz_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(miniz_FRAMEWORKS_RELWITHDEBINFO ) +set(miniz_BUILD_DIRS_RELWITHDEBINFO ) +set(miniz_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(miniz_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${miniz_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${miniz_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(miniz_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${miniz_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${miniz_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${miniz_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(miniz_COMPONENTS_RELWITHDEBINFO ) \ No newline at end of file diff --git a/minizTargets.cmake b/minizTargets.cmake new file mode 100644 index 000000000..7bfd79ca5 --- /dev/null +++ b/minizTargets.cmake @@ -0,0 +1,25 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/miniz-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${miniz_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${miniz_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET miniz::miniz) + add_library(miniz::miniz INTERFACE IMPORTED) + message(${miniz_MESSAGE_MODE} "Conan: Target declared 'miniz::miniz'") +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/miniz-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file diff --git a/module-GTest-Target-relwithdebinfo.cmake b/module-GTest-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..0876efa94 --- /dev/null +++ b/module-GTest-Target-relwithdebinfo.cmake @@ -0,0 +1,286 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO "${gtest_FRAMEWORKS_RELWITHDEBINFO}" "${gtest_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(gtest_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET gtest_DEPS_TARGET) + add_library(gtest_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET gtest_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${gtest_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:GTest::gtest;GTest::gmock>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### gtest_DEPS_TARGET to all of them +conan_package_library_targets("${gtest_LIBS_RELWITHDEBINFO}" # libraries + "${gtest_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${gtest_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${gtest_LIBRARY_TYPE_RELWITHDEBINFO}" + "${gtest_IS_HOST_WINDOWS_RELWITHDEBINFO}" + gtest_DEPS_TARGET + gtest_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "gtest" # package_name + "${gtest_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${gtest_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## COMPONENTS TARGET PROPERTIES RelWithDebInfo ######################################## + + ########## COMPONENT GTest::gmock_main ############# + + set(gtest_GTest_gmock_main_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(gtest_GTest_gmock_main_FRAMEWORKS_FOUND_RELWITHDEBINFO "${gtest_GTest_gmock_main_FRAMEWORKS_RELWITHDEBINFO}" "${gtest_GTest_gmock_main_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(gtest_GTest_gmock_main_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET gtest_GTest_gmock_main_DEPS_TARGET) + add_library(gtest_GTest_gmock_main_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET gtest_GTest_gmock_main_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gmock_main_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_main_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_main_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'gtest_GTest_gmock_main_DEPS_TARGET' to all of them + conan_package_library_targets("${gtest_GTest_gmock_main_LIBS_RELWITHDEBINFO}" + "${gtest_GTest_gmock_main_LIB_DIRS_RELWITHDEBINFO}" + "${gtest_GTest_gmock_main_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${gtest_GTest_gmock_main_LIBRARY_TYPE_RELWITHDEBINFO}" + "${gtest_GTest_gmock_main_IS_HOST_WINDOWS_RELWITHDEBINFO}" + gtest_GTest_gmock_main_DEPS_TARGET + gtest_GTest_gmock_main_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "gtest_GTest_gmock_main" + "${gtest_GTest_gmock_main_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET GTest::gmock_main + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gmock_main_OBJECTS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_main_LIBRARIES_TARGETS}> + ) + + if("${gtest_GTest_gmock_main_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET GTest::gmock_main + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + gtest_GTest_gmock_main_DEPS_TARGET) + endif() + + set_property(TARGET GTest::gmock_main APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${gtest_GTest_gmock_main_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock_main APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${gtest_GTest_gmock_main_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock_main APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${gtest_GTest_gmock_main_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock_main APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${gtest_GTest_gmock_main_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock_main APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${gtest_GTest_gmock_main_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## COMPONENT GTest::gmock ############# + + set(gtest_GTest_gmock_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(gtest_GTest_gmock_FRAMEWORKS_FOUND_RELWITHDEBINFO "${gtest_GTest_gmock_FRAMEWORKS_RELWITHDEBINFO}" "${gtest_GTest_gmock_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(gtest_GTest_gmock_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET gtest_GTest_gmock_DEPS_TARGET) + add_library(gtest_GTest_gmock_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET gtest_GTest_gmock_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gmock_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'gtest_GTest_gmock_DEPS_TARGET' to all of them + conan_package_library_targets("${gtest_GTest_gmock_LIBS_RELWITHDEBINFO}" + "${gtest_GTest_gmock_LIB_DIRS_RELWITHDEBINFO}" + "${gtest_GTest_gmock_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${gtest_GTest_gmock_LIBRARY_TYPE_RELWITHDEBINFO}" + "${gtest_GTest_gmock_IS_HOST_WINDOWS_RELWITHDEBINFO}" + gtest_GTest_gmock_DEPS_TARGET + gtest_GTest_gmock_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "gtest_GTest_gmock" + "${gtest_GTest_gmock_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET GTest::gmock + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gmock_OBJECTS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gmock_LIBRARIES_TARGETS}> + ) + + if("${gtest_GTest_gmock_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET GTest::gmock + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + gtest_GTest_gmock_DEPS_TARGET) + endif() + + set_property(TARGET GTest::gmock APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${gtest_GTest_gmock_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${gtest_GTest_gmock_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${gtest_GTest_gmock_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${gtest_GTest_gmock_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gmock APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${gtest_GTest_gmock_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## COMPONENT GTest::gtest_main ############# + + set(gtest_GTest_gtest_main_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(gtest_GTest_gtest_main_FRAMEWORKS_FOUND_RELWITHDEBINFO "${gtest_GTest_gtest_main_FRAMEWORKS_RELWITHDEBINFO}" "${gtest_GTest_gtest_main_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(gtest_GTest_gtest_main_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET gtest_GTest_gtest_main_DEPS_TARGET) + add_library(gtest_GTest_gtest_main_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET gtest_GTest_gtest_main_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gtest_main_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_main_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_main_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'gtest_GTest_gtest_main_DEPS_TARGET' to all of them + conan_package_library_targets("${gtest_GTest_gtest_main_LIBS_RELWITHDEBINFO}" + "${gtest_GTest_gtest_main_LIB_DIRS_RELWITHDEBINFO}" + "${gtest_GTest_gtest_main_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${gtest_GTest_gtest_main_LIBRARY_TYPE_RELWITHDEBINFO}" + "${gtest_GTest_gtest_main_IS_HOST_WINDOWS_RELWITHDEBINFO}" + gtest_GTest_gtest_main_DEPS_TARGET + gtest_GTest_gtest_main_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "gtest_GTest_gtest_main" + "${gtest_GTest_gtest_main_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET GTest::gtest_main + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gtest_main_OBJECTS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_main_LIBRARIES_TARGETS}> + ) + + if("${gtest_GTest_gtest_main_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET GTest::gtest_main + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + gtest_GTest_gtest_main_DEPS_TARGET) + endif() + + set_property(TARGET GTest::gtest_main APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${gtest_GTest_gtest_main_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest_main APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${gtest_GTest_gtest_main_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest_main APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${gtest_GTest_gtest_main_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest_main APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${gtest_GTest_gtest_main_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest_main APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${gtest_GTest_gtest_main_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## COMPONENT GTest::gtest ############# + + set(gtest_GTest_gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO "") + conan_find_apple_frameworks(gtest_GTest_gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO "${gtest_GTest_gtest_FRAMEWORKS_RELWITHDEBINFO}" "${gtest_GTest_gtest_FRAMEWORK_DIRS_RELWITHDEBINFO}") + + set(gtest_GTest_gtest_LIBRARIES_TARGETS "") + + ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) + if(NOT TARGET gtest_GTest_gtest_DEPS_TARGET) + add_library(gtest_GTest_gtest_DEPS_TARGET INTERFACE IMPORTED) + endif() + + set_property(TARGET gtest_GTest_gtest_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gtest_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_DEPENDENCIES_RELWITHDEBINFO}> + ) + + ####### Find the libraries declared in cpp_info.component["xxx"].libs, + ####### create an IMPORTED target for each one and link the 'gtest_GTest_gtest_DEPS_TARGET' to all of them + conan_package_library_targets("${gtest_GTest_gtest_LIBS_RELWITHDEBINFO}" + "${gtest_GTest_gtest_LIB_DIRS_RELWITHDEBINFO}" + "${gtest_GTest_gtest_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${gtest_GTest_gtest_LIBRARY_TYPE_RELWITHDEBINFO}" + "${gtest_GTest_gtest_IS_HOST_WINDOWS_RELWITHDEBINFO}" + gtest_GTest_gtest_DEPS_TARGET + gtest_GTest_gtest_LIBRARIES_TARGETS + "_RELWITHDEBINFO" + "gtest_GTest_gtest" + "${gtest_GTest_gtest_NO_SONAME_MODE_RELWITHDEBINFO}") + + + ########## TARGET PROPERTIES ##################################### + set_property(TARGET GTest::gtest + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${gtest_GTest_gtest_OBJECTS_RELWITHDEBINFO}> + $<$:${gtest_GTest_gtest_LIBRARIES_TARGETS}> + ) + + if("${gtest_GTest_gtest_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not + # linked to the imported targets and we need to do it to the global target + set_property(TARGET GTest::gtest + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + gtest_GTest_gtest_DEPS_TARGET) + endif() + + set_property(TARGET GTest::gtest APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${gtest_GTest_gtest_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${gtest_GTest_gtest_INCLUDE_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${gtest_GTest_gtest_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${gtest_GTest_gtest_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET GTest::gtest APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${gtest_GTest_gtest_COMPILE_OPTIONS_RELWITHDEBINFO}>) + + + ########## AGGREGATED GLOBAL TARGET WITH THE COMPONENTS ##################### + set_property(TARGET gtest::gtest APPEND PROPERTY INTERFACE_LINK_LIBRARIES GTest::gmock_main) + set_property(TARGET gtest::gtest APPEND PROPERTY INTERFACE_LINK_LIBRARIES GTest::gmock) + set_property(TARGET gtest::gtest APPEND PROPERTY INTERFACE_LINK_LIBRARIES GTest::gtest_main) + set_property(TARGET gtest::gtest APPEND PROPERTY INTERFACE_LINK_LIBRARIES GTest::gtest) + +########## For the modules (FindXXX) +set(gtest_LIBRARIES_RELWITHDEBINFO gtest::gtest) diff --git a/module-GTest-relwithdebinfo-armv8-data.cmake b/module-GTest-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..4e300b117 --- /dev/null +++ b/module-GTest-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,174 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +list(APPEND gtest_COMPONENT_NAMES GTest::gtest GTest::gtest_main GTest::gmock GTest::gmock_main) +list(REMOVE_DUPLICATES gtest_COMPONENT_NAMES) +if(DEFINED gtest_FIND_DEPENDENCY_NAMES) + list(APPEND gtest_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES gtest_FIND_DEPENDENCY_NAMES) +else() + set(gtest_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(gtest_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/b/gtestb6bb409d34b28/p") +set(gtest_BUILD_MODULES_PATHS_RELWITHDEBINFO ) + + +set(gtest_INCLUDE_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(gtest_RES_DIRS_RELWITHDEBINFO ) +set(gtest_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_OBJECTS_RELWITHDEBINFO ) +set(gtest_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(gtest_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(gtest_LIB_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(gtest_BIN_DIRS_RELWITHDEBINFO ) +set(gtest_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(gtest_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(gtest_LIBS_RELWITHDEBINFO gmock_main gmock gtest_main gtest) +set(gtest_SYSTEM_LIBS_RELWITHDEBINFO ) +set(gtest_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(gtest_FRAMEWORKS_RELWITHDEBINFO ) +set(gtest_BUILD_DIRS_RELWITHDEBINFO ) +set(gtest_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(gtest_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${gtest_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${gtest_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(gtest_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${gtest_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(gtest_COMPONENTS_RELWITHDEBINFO GTest::gtest GTest::gtest_main GTest::gmock GTest::gmock_main) +########### COMPONENT GTest::gmock_main VARIABLES ############################################ + +set(gtest_GTest_gmock_main_INCLUDE_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(gtest_GTest_gmock_main_LIB_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(gtest_GTest_gmock_main_BIN_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(gtest_GTest_gmock_main_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(gtest_GTest_gmock_main_RES_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_OBJECTS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(gtest_GTest_gmock_main_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(gtest_GTest_gmock_main_LIBS_RELWITHDEBINFO gmock_main) +set(gtest_GTest_gmock_main_SYSTEM_LIBS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_FRAMEWORKS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_DEPENDENCIES_RELWITHDEBINFO GTest::gmock) +set(gtest_GTest_gmock_main_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_main_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(gtest_GTest_gmock_main_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${gtest_GTest_gmock_main_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${gtest_GTest_gmock_main_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${gtest_GTest_gmock_main_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(gtest_GTest_gmock_main_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${gtest_GTest_gmock_main_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${gtest_GTest_gmock_main_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +########### COMPONENT GTest::gmock VARIABLES ############################################ + +set(gtest_GTest_gmock_INCLUDE_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(gtest_GTest_gmock_LIB_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(gtest_GTest_gmock_BIN_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(gtest_GTest_gmock_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(gtest_GTest_gmock_RES_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_OBJECTS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(gtest_GTest_gmock_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(gtest_GTest_gmock_LIBS_RELWITHDEBINFO gmock) +set(gtest_GTest_gmock_SYSTEM_LIBS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_FRAMEWORKS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_DEPENDENCIES_RELWITHDEBINFO GTest::gtest) +set(gtest_GTest_gmock_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gmock_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(gtest_GTest_gmock_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${gtest_GTest_gmock_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${gtest_GTest_gmock_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${gtest_GTest_gmock_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(gtest_GTest_gmock_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${gtest_GTest_gmock_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${gtest_GTest_gmock_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +########### COMPONENT GTest::gtest_main VARIABLES ############################################ + +set(gtest_GTest_gtest_main_INCLUDE_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(gtest_GTest_gtest_main_LIB_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(gtest_GTest_gtest_main_BIN_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(gtest_GTest_gtest_main_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(gtest_GTest_gtest_main_RES_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_OBJECTS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(gtest_GTest_gtest_main_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(gtest_GTest_gtest_main_LIBS_RELWITHDEBINFO gtest_main) +set(gtest_GTest_gtest_main_SYSTEM_LIBS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_FRAMEWORKS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_DEPENDENCIES_RELWITHDEBINFO GTest::gtest) +set(gtest_GTest_gtest_main_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_main_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(gtest_GTest_gtest_main_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${gtest_GTest_gtest_main_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${gtest_GTest_gtest_main_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${gtest_GTest_gtest_main_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(gtest_GTest_gtest_main_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${gtest_GTest_gtest_main_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${gtest_GTest_gtest_main_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +########### COMPONENT GTest::gtest VARIABLES ############################################ + +set(gtest_GTest_gtest_INCLUDE_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(gtest_GTest_gtest_LIB_DIRS_RELWITHDEBINFO "${gtest_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(gtest_GTest_gtest_BIN_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(gtest_GTest_gtest_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(gtest_GTest_gtest_RES_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_OBJECTS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_COMPILE_OPTIONS_C_RELWITHDEBINFO "") +set(gtest_GTest_gtest_COMPILE_OPTIONS_CXX_RELWITHDEBINFO "") +set(gtest_GTest_gtest_LIBS_RELWITHDEBINFO gtest) +set(gtest_GTest_gtest_SYSTEM_LIBS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_FRAMEWORKS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_DEPENDENCIES_RELWITHDEBINFO ) +set(gtest_GTest_gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(gtest_GTest_gtest_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + +# COMPOUND VARIABLES +set(gtest_GTest_gtest_LINKER_FLAGS_RELWITHDEBINFO + $<$,SHARED_LIBRARY>:${gtest_GTest_gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,MODULE_LIBRARY>:${gtest_GTest_gtest_SHARED_LINK_FLAGS_RELWITHDEBINFO}> + $<$,EXECUTABLE>:${gtest_GTest_gtest_EXE_LINK_FLAGS_RELWITHDEBINFO}> +) +set(gtest_GTest_gtest_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${gtest_GTest_gtest_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${gtest_GTest_gtest_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") \ No newline at end of file diff --git a/module-GTestTargets.cmake b/module-GTestTargets.cmake new file mode 100644 index 000000000..69a874bfd --- /dev/null +++ b/module-GTestTargets.cmake @@ -0,0 +1,33 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/module-GTest-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${gtest_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${GTest_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET gtest::gtest) + add_library(gtest::gtest INTERFACE IMPORTED) + message(${GTest_MESSAGE_MODE} "Conan: Target declared 'gtest::gtest'") +endif() +if(NOT TARGET GTest::GTest) + add_library(GTest::GTest INTERFACE IMPORTED) + set_property(TARGET GTest::GTest PROPERTY INTERFACE_LINK_LIBRARIES GTest::gtest) +endif() +if(NOT TARGET GTest::Main) + add_library(GTest::Main INTERFACE IMPORTED) + set_property(TARGET GTest::Main PROPERTY INTERFACE_LINK_LIBRARIES GTest::gtest_main) +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/module-GTest-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file diff --git a/nlohmann_json-Target-relwithdebinfo.cmake b/nlohmann_json-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..affb25dde --- /dev/null +++ b/nlohmann_json-Target-relwithdebinfo.cmake @@ -0,0 +1,71 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(nlohmann_json_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(nlohmann_json_FRAMEWORKS_FOUND_RELWITHDEBINFO "${nlohmann_json_FRAMEWORKS_RELWITHDEBINFO}" "${nlohmann_json_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(nlohmann_json_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET nlohmann_json_DEPS_TARGET) + add_library(nlohmann_json_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET nlohmann_json_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${nlohmann_json_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${nlohmann_json_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### nlohmann_json_DEPS_TARGET to all of them +conan_package_library_targets("${nlohmann_json_LIBS_RELWITHDEBINFO}" # libraries + "${nlohmann_json_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${nlohmann_json_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${nlohmann_json_LIBRARY_TYPE_RELWITHDEBINFO}" + "${nlohmann_json_IS_HOST_WINDOWS_RELWITHDEBINFO}" + nlohmann_json_DEPS_TARGET + nlohmann_json_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "nlohmann_json" # package_name + "${nlohmann_json_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${nlohmann_json_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## GLOBAL TARGET PROPERTIES RelWithDebInfo ######################################## + set_property(TARGET nlohmann_json::nlohmann_json + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${nlohmann_json_OBJECTS_RELWITHDEBINFO}> + $<$:${nlohmann_json_LIBRARIES_TARGETS}> + ) + + if("${nlohmann_json_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the package is not declaring any "cpp_info.libs" the package deps, system libs, + # frameworks etc are not linked to the imported targets and we need to do it to the + # global target + set_property(TARGET nlohmann_json::nlohmann_json + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + nlohmann_json_DEPS_TARGET) + endif() + + set_property(TARGET nlohmann_json::nlohmann_json + APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${nlohmann_json_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET nlohmann_json::nlohmann_json + APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${nlohmann_json_INCLUDE_DIRS_RELWITHDEBINFO}>) + # Necessary to find LINK shared libraries in Linux + set_property(TARGET nlohmann_json::nlohmann_json + APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${nlohmann_json_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET nlohmann_json::nlohmann_json + APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${nlohmann_json_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET nlohmann_json::nlohmann_json + APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${nlohmann_json_COMPILE_OPTIONS_RELWITHDEBINFO}>) + +########## For the modules (FindXXX) +set(nlohmann_json_LIBRARIES_RELWITHDEBINFO nlohmann_json::nlohmann_json) diff --git a/nlohmann_json-config-version.cmake b/nlohmann_json-config-version.cmake new file mode 100644 index 000000000..d6d052f4d --- /dev/null +++ b/nlohmann_json-config-version.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "3.12.0") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if("3.12.0" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1}) + else() + set(CVF_VERSION_MAJOR "3.12.0") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/nlohmann_json-config.cmake b/nlohmann_json-config.cmake new file mode 100644 index 000000000..db355dc50 --- /dev/null +++ b/nlohmann_json-config.cmake @@ -0,0 +1,44 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(nlohmann_json_FIND_QUIETLY) + set(nlohmann_json_MESSAGE_MODE VERBOSE) +else() + set(nlohmann_json_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/nlohmann_jsonTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${nlohmann_json_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(nlohmann_json_VERSION_STRING "3.12.0") +set(nlohmann_json_INCLUDE_DIRS ${nlohmann_json_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(nlohmann_json_INCLUDE_DIR ${nlohmann_json_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(nlohmann_json_LIBRARIES ${nlohmann_json_LIBRARIES_RELWITHDEBINFO} ) +set(nlohmann_json_DEFINITIONS ${nlohmann_json_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${nlohmann_json_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${nlohmann_json_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + diff --git a/nlohmann_json-relwithdebinfo-armv8-data.cmake b/nlohmann_json-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..8c0579323 --- /dev/null +++ b/nlohmann_json-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,49 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +set(nlohmann_json_COMPONENT_NAMES "") +if(DEFINED nlohmann_json_FIND_DEPENDENCY_NAMES) + list(APPEND nlohmann_json_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES nlohmann_json_FIND_DEPENDENCY_NAMES) +else() + set(nlohmann_json_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(nlohmann_json_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/nlohmd014ef7748f4b/p") +set(nlohmann_json_BUILD_MODULES_PATHS_RELWITHDEBINFO ) + + +set(nlohmann_json_INCLUDE_DIRS_RELWITHDEBINFO "${nlohmann_json_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(nlohmann_json_RES_DIRS_RELWITHDEBINFO ) +set(nlohmann_json_DEFINITIONS_RELWITHDEBINFO ) +set(nlohmann_json_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(nlohmann_json_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(nlohmann_json_OBJECTS_RELWITHDEBINFO ) +set(nlohmann_json_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(nlohmann_json_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(nlohmann_json_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(nlohmann_json_LIB_DIRS_RELWITHDEBINFO ) +set(nlohmann_json_BIN_DIRS_RELWITHDEBINFO ) +set(nlohmann_json_LIBRARY_TYPE_RELWITHDEBINFO UNKNOWN) +set(nlohmann_json_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(nlohmann_json_LIBS_RELWITHDEBINFO ) +set(nlohmann_json_SYSTEM_LIBS_RELWITHDEBINFO ) +set(nlohmann_json_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(nlohmann_json_FRAMEWORKS_RELWITHDEBINFO ) +set(nlohmann_json_BUILD_DIRS_RELWITHDEBINFO ) +set(nlohmann_json_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(nlohmann_json_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${nlohmann_json_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${nlohmann_json_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(nlohmann_json_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${nlohmann_json_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${nlohmann_json_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${nlohmann_json_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(nlohmann_json_COMPONENTS_RELWITHDEBINFO ) \ No newline at end of file diff --git a/nlohmann_jsonTargets.cmake b/nlohmann_jsonTargets.cmake new file mode 100644 index 000000000..f73a681c5 --- /dev/null +++ b/nlohmann_jsonTargets.cmake @@ -0,0 +1,25 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/nlohmann_json-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${nlohmann_json_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${nlohmann_json_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET nlohmann_json::nlohmann_json) + add_library(nlohmann_json::nlohmann_json INTERFACE IMPORTED) + message(${nlohmann_json_MESSAGE_MODE} "Conan: Target declared 'nlohmann_json::nlohmann_json'") +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/nlohmann_json-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file diff --git a/pugixml-Target-relwithdebinfo.cmake b/pugixml-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..cdfa49b32 --- /dev/null +++ b/pugixml-Target-relwithdebinfo.cmake @@ -0,0 +1,71 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(pugixml_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(pugixml_FRAMEWORKS_FOUND_RELWITHDEBINFO "${pugixml_FRAMEWORKS_RELWITHDEBINFO}" "${pugixml_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(pugixml_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET pugixml_DEPS_TARGET) + add_library(pugixml_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET pugixml_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${pugixml_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${pugixml_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### pugixml_DEPS_TARGET to all of them +conan_package_library_targets("${pugixml_LIBS_RELWITHDEBINFO}" # libraries + "${pugixml_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${pugixml_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${pugixml_LIBRARY_TYPE_RELWITHDEBINFO}" + "${pugixml_IS_HOST_WINDOWS_RELWITHDEBINFO}" + pugixml_DEPS_TARGET + pugixml_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "pugixml" # package_name + "${pugixml_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${pugixml_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## GLOBAL TARGET PROPERTIES RelWithDebInfo ######################################## + set_property(TARGET pugixml::pugixml + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${pugixml_OBJECTS_RELWITHDEBINFO}> + $<$:${pugixml_LIBRARIES_TARGETS}> + ) + + if("${pugixml_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the package is not declaring any "cpp_info.libs" the package deps, system libs, + # frameworks etc are not linked to the imported targets and we need to do it to the + # global target + set_property(TARGET pugixml::pugixml + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + pugixml_DEPS_TARGET) + endif() + + set_property(TARGET pugixml::pugixml + APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${pugixml_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET pugixml::pugixml + APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${pugixml_INCLUDE_DIRS_RELWITHDEBINFO}>) + # Necessary to find LINK shared libraries in Linux + set_property(TARGET pugixml::pugixml + APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${pugixml_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET pugixml::pugixml + APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${pugixml_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET pugixml::pugixml + APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${pugixml_COMPILE_OPTIONS_RELWITHDEBINFO}>) + +########## For the modules (FindXXX) +set(pugixml_LIBRARIES_RELWITHDEBINFO pugixml::pugixml) diff --git a/pugixml-config-version.cmake b/pugixml-config-version.cmake new file mode 100644 index 000000000..412861fb0 --- /dev/null +++ b/pugixml-config-version.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "1.15") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if("1.15" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1}) + else() + set(CVF_VERSION_MAJOR "1.15") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/pugixml-config.cmake b/pugixml-config.cmake new file mode 100644 index 000000000..7427e03d8 --- /dev/null +++ b/pugixml-config.cmake @@ -0,0 +1,44 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(pugixml_FIND_QUIETLY) + set(pugixml_MESSAGE_MODE VERBOSE) +else() + set(pugixml_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/pugixmlTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${pugixml_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(pugixml_VERSION_STRING "1.15") +set(pugixml_INCLUDE_DIRS ${pugixml_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(pugixml_INCLUDE_DIR ${pugixml_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(pugixml_LIBRARIES ${pugixml_LIBRARIES_RELWITHDEBINFO} ) +set(pugixml_DEFINITIONS ${pugixml_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${pugixml_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${pugixml_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + diff --git a/pugixml-relwithdebinfo-armv8-data.cmake b/pugixml-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..ad4e6b9f0 --- /dev/null +++ b/pugixml-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,49 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +set(pugixml_COMPONENT_NAMES "") +if(DEFINED pugixml_FIND_DEPENDENCY_NAMES) + list(APPEND pugixml_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES pugixml_FIND_DEPENDENCY_NAMES) +else() + set(pugixml_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(pugixml_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/pugix676f7d1fa98b4/p") +set(pugixml_BUILD_MODULES_PATHS_RELWITHDEBINFO ) + + +set(pugixml_INCLUDE_DIRS_RELWITHDEBINFO "${pugixml_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(pugixml_RES_DIRS_RELWITHDEBINFO ) +set(pugixml_DEFINITIONS_RELWITHDEBINFO "-DPUGIXML_HEADER_ONLY") +set(pugixml_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(pugixml_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(pugixml_OBJECTS_RELWITHDEBINFO ) +set(pugixml_COMPILE_DEFINITIONS_RELWITHDEBINFO "PUGIXML_HEADER_ONLY") +set(pugixml_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(pugixml_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(pugixml_LIB_DIRS_RELWITHDEBINFO ) +set(pugixml_BIN_DIRS_RELWITHDEBINFO ) +set(pugixml_LIBRARY_TYPE_RELWITHDEBINFO UNKNOWN) +set(pugixml_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(pugixml_LIBS_RELWITHDEBINFO ) +set(pugixml_SYSTEM_LIBS_RELWITHDEBINFO ) +set(pugixml_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(pugixml_FRAMEWORKS_RELWITHDEBINFO ) +set(pugixml_BUILD_DIRS_RELWITHDEBINFO ) +set(pugixml_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(pugixml_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${pugixml_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${pugixml_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(pugixml_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${pugixml_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${pugixml_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${pugixml_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(pugixml_COMPONENTS_RELWITHDEBINFO ) \ No newline at end of file diff --git a/pugixmlTargets.cmake b/pugixmlTargets.cmake new file mode 100644 index 000000000..725a01917 --- /dev/null +++ b/pugixmlTargets.cmake @@ -0,0 +1,25 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/pugixml-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${pugixml_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${pugixml_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET pugixml::pugixml) + add_library(pugixml::pugixml INTERFACE IMPORTED) + message(${pugixml_MESSAGE_MODE} "Conan: Target declared 'pugixml::pugixml'") +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/pugixml-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file diff --git a/src/odr/internal/odf/AGENTS.md b/src/odr/internal/odf/AGENTS.md index bfd23b336..ad5a5de69 100644 --- a/src/odr/internal/odf/AGENTS.md +++ b/src/odr/internal/odf/AGENTS.md @@ -28,7 +28,7 @@ engines throw away the source, so their models are read-only. Everything else follows the shared registry/adapter pattern: a flat element store, id = index + 1, `null_element_id == 0`, parent/child/ -sibling ids, per-subtype side maps (`m_texts`, `m_tables`, `m_sheets`, +sibling ids, per-subtype payload tables (`m_texts`, `m_tables`, `m_sheets`, `m_sheet_cells`). One mega `ElementAdapter` multiply-inherits every abstract per-type adapter and dispatches by returning `this`/`nullptr` on `element_type`. @@ -66,7 +66,16 @@ where its own run starts, so a sheet is two allocations rather than one per row. The elements themselves are a `std::deque`: `create_element` hands back a reference the parser holds on to, and a vector both invalidates it and peaks -holding two copies. +holding two copies. `parse_sheet` counts the row and cell nodes first, so the +arrays are allocated once at the size they end at — a repeat collapses onto one +entry, so the count is an upper bound, and one bounded by the dom. + +**Ids are stored narrow, payloads in sorted arrays.** `StoredId` is 32 bits and +every boundary widens back to the public `ElementIdentifier`, which stays 64 — +`csv` packs coordinates into it. The payload tables are written in id order as +elements are created, so a binary search replaces a hash map; `m_list_types` and +`m_list_markers` stay hash maps, written when a list is resolved rather than +parsed. **Styles resolve to a flattened `ResolvedStyle`, eagerly.** `StyleRegistry` first builds name→node indices from *both* files (automatic and named styles land @@ -128,7 +137,7 @@ are **tolerated** to keep rendering best-effort. | `odf_meta.cpp` | `parse_file_meta`: mimetype→FileType, doc type, page/table counts, encryption flag | | `odf_manifest.{hpp,cpp}` | `META-INF/manifest.xml` → per-file crypto entries, smallest-file tracking | | `odf_crypto.cpp` | Decryption: hashing, key derivation, cipher dispatch, package-vs-lazy filesystem | -| `odf_element_registry.{hpp,cpp}` | Flat element store + Text/Table/Sheet/SheetCell side maps; sparse repeated-range maps | +| `odf_element_registry.{hpp,cpp}` | Flat element store + Text/Table/Sheet/SheetCell payload tables; sparse repeated-range index | | `odf_parser.{hpp,cpp}` | `content.xml` → registry: name dispatch table, text-run coalescing, sheet cursor | | `odf_document.{hpp,cpp}` | `Document` (owns DOMs + registries + adapter); the mega `ElementAdapter`; edit + `save` | | `odf_style.{hpp,cpp}` | `StyleRegistry` + `Style`: indices, eager parent/family flatten, master pages, `ResolvedStyle` readers | diff --git a/src/odr/internal/odf/odf_element_registry.cpp b/src/odr/internal/odf/odf_element_registry.cpp index 2bc72be2e..a630ae0fc 100644 --- a/src/odr/internal/odf/odf_element_registry.cpp +++ b/src/odr/internal/odf/odf_element_registry.cpp @@ -1,6 +1,7 @@ #include #include +#include #include namespace odr::internal::odf { @@ -22,6 +23,11 @@ void ElementRegistry::clear() noexcept { std::tuple ElementRegistry::create_element(const ElementType type, const pugi::xml_node node) { + if (m_elements.size() >= std::numeric_limits::max()) { + throw std::overflow_error( + "ElementRegistry::create_element: out of identifiers"); + } + Element &element = m_elements.emplace_back(); const ElementIdentifier element_id = m_elements.size(); element.type = type; @@ -35,7 +41,7 @@ ElementRegistry::create_text_element(const pugi::xml_node first_node, const pugi::xml_node last_node) { const auto &[element_id, element] = create_element(ElementType::text, first_node); - Text &text = m_texts.emplace(element_id, Text{last_node}).first->second; + Text &text = m_texts.emplace(element_id, Text{last_node}); return {element_id, element, text}; } @@ -43,7 +49,7 @@ std::tuple ElementRegistry::create_table_element(const pugi::xml_node node) { const auto &[element_id, element] = create_element(ElementType::table, node); - Table &table = m_tables.emplace(element_id, Table{}).first->second; + Table &table = m_tables.emplace(element_id, Table{}); return {element_id, element, table}; } @@ -51,7 +57,7 @@ std::tuple ElementRegistry::create_sheet_element(const pugi::xml_node node) { const auto &[element_id, element] = create_element(ElementType::sheet, node); - Sheet &sheet = m_sheets.emplace(element_id, Sheet{}).first->second; + Sheet &sheet = m_sheets.emplace(element_id, Sheet{}); return {element_id, element, sheet}; } @@ -62,11 +68,8 @@ ElementRegistry::create_sheet_cell_element(const pugi::xml_node node, const bool is_repeated) { const auto &[element_id, element] = create_element(ElementType::sheet_cell, node); - SheetCell &sheet_cell = - m_sheet_cells - .emplace(element_id, - SheetCell{.position = position, .is_repeated = is_repeated}) - .first->second; + SheetCell &sheet_cell = m_sheet_cells.emplace( + element_id, SheetCell{.position = position, .is_repeated = is_repeated}); return {element_id, element, sheet_cell}; } @@ -78,19 +81,19 @@ ElementRegistry::element_at(const ElementIdentifier id) { ElementRegistry::Text & ElementRegistry::text_element_at(const ElementIdentifier id) { - check_text_id(id); + check_element_id(id); return m_texts.at(id); } ElementRegistry::Table & ElementRegistry::table_element_at(const ElementIdentifier id) { - check_table_id(id); + check_element_id(id); return m_tables.at(id); } ElementRegistry::Sheet & ElementRegistry::sheet_element_at(const ElementIdentifier id) { - check_sheet_id(id); + check_element_id(id); return m_sheets.at(id); } @@ -102,50 +105,46 @@ ElementRegistry::element_at(const ElementIdentifier id) const { const ElementRegistry::Text & ElementRegistry::text_element_at(const ElementIdentifier id) const { - check_text_id(id); + check_element_id(id); return m_texts.at(id); } const ElementRegistry::Table & ElementRegistry::table_element_at(const ElementIdentifier id) const { - check_table_id(id); + check_element_id(id); return m_tables.at(id); } const ElementRegistry::Sheet & ElementRegistry::sheet_element_at(const ElementIdentifier id) const { - check_sheet_id(id); + check_element_id(id); return m_sheets.at(id); } const ElementRegistry::SheetCell & ElementRegistry::sheet_cell_element_at(const ElementIdentifier id) const { - check_sheet_cell_id(id); + check_element_id(id); return m_sheet_cells.at(id); } const ElementRegistry::SheetCell * ElementRegistry::sheet_cell_element(const ElementIdentifier id) const { - if (const auto it = m_sheet_cells.find(id); it != m_sheet_cells.end()) { - return &it->second; - } - return nullptr; + return m_sheet_cells.find(id); } void ElementRegistry::link_child(const ElementIdentifier parent_id, const ElementIdentifier child_id, - ElementIdentifier &first_id, - ElementIdentifier &last_id) { + StoredId &first_id, StoredId &last_id) { Element &child = element_at(child_id); - child.parent_id = parent_id; + child.parent_id = static_cast(parent_id); child.previous_sibling_id = last_id; if (first_id == null_element_id) { - first_id = child_id; + first_id = static_cast(child_id); } else { - element_at(last_id).next_sibling_id = child_id; + element_at(last_id).next_sibling_id = static_cast(child_id); } - last_id = child_id; + last_id = static_cast(child_id); } void ElementRegistry::append_child(const ElementIdentifier parent_id, @@ -163,27 +162,25 @@ void ElementRegistry::append_child(const ElementIdentifier parent_id, void ElementRegistry::append_column(const ElementIdentifier table_id, const ElementIdentifier column_id) { - check_table_id(table_id); + Table &table = table_element_at(table_id); check_element_id(column_id); if (element_at(column_id).parent_id != null_element_id) { throw std::invalid_argument( "DocumentElementRegistry::append_column: child already has a parent"); } - Table &table = table_element_at(table_id); link_child(table_id, column_id, table.first_column_id, table.last_column_id); } void ElementRegistry::append_shape(const ElementIdentifier sheet_id, const ElementIdentifier shape_id) { - check_sheet_id(sheet_id); + Sheet &sheet = sheet_element_at(sheet_id); check_element_id(shape_id); if (element_at(shape_id).parent_id != null_element_id) { throw std::invalid_argument( "DocumentElementRegistry::append_shape: child already has a parent"); } - Sheet &sheet = sheet_element_at(sheet_id); link_child(sheet_id, shape_id, sheet.first_shape_id, sheet.last_shape_id); } @@ -196,7 +193,7 @@ void ElementRegistry::append_sheet_cell(const ElementIdentifier sheet_id, "child already has a parent"); } - element_at(cell_id).parent_id = sheet_id; + element_at(cell_id).parent_id = static_cast(sheet_id); } void ElementRegistry::check_element_id(const ElementIdentifier id) const { @@ -210,33 +207,9 @@ void ElementRegistry::check_element_id(const ElementIdentifier id) const { } } -void ElementRegistry::check_text_id(const ElementIdentifier id) const { - check_element_id(id); - if (!m_texts.contains(id)) { - throw std::out_of_range( - "DocumentElementRegistry::check_id: identifier not found"); - } -} - -void ElementRegistry::check_table_id(const ElementIdentifier id) const { - check_element_id(id); - if (!m_tables.contains(id)) { - throw std::out_of_range( - "DocumentElementRegistry::check_id: identifier not found"); - } -} - void ElementRegistry::check_sheet_id(const ElementIdentifier id) const { check_element_id(id); - if (!m_sheets.contains(id)) { - throw std::out_of_range( - "DocumentElementRegistry::check_id: identifier not found"); - } -} - -void ElementRegistry::check_sheet_cell_id(const ElementIdentifier id) const { - check_element_id(id); - if (!m_sheet_cells.contains(id)) { + if (m_sheets.find(id) == nullptr) { throw std::out_of_range( "DocumentElementRegistry::check_id: identifier not found"); } @@ -281,10 +254,14 @@ void ElementRegistry::Sheet::register_cell(const std::uint32_t column, const std::uint32_t end = column + columns_repeated; if (cells.size() > rows.back().first_cell && cells.back().end >= end) { - cells.back() = {.end = end, .node = element, .element_id = element_id}; + cells.back() = {.end = end, + .element_id = static_cast(element_id), + .node = element}; return; } - cells.push_back({.end = end, .node = element, .element_id = element_id}); + cells.push_back({.end = end, + .element_id = static_cast(element_id), + .node = element}); } namespace { diff --git a/src/odr/internal/odf/odf_element_registry.hpp b/src/odr/internal/odf/odf_element_registry.hpp index d8358891f..99badd90f 100644 --- a/src/odr/internal/odf/odf_element_registry.hpp +++ b/src/odr/internal/odf/odf_element_registry.hpp @@ -7,10 +7,13 @@ #include #include +#include +#include #include -#include #include +#include #include +#include #include #include @@ -19,19 +22,23 @@ namespace odr::internal::odf { class ElementRegistry final { public: + /// An element is five ids, so the width is most of what one costs. Widened + /// back at every boundary; an id past @ref check_element_id fits. + using StoredId = std::uint32_t; + struct Element final { - ElementIdentifier parent_id{null_element_id}; - ElementIdentifier first_child_id{null_element_id}; - ElementIdentifier last_child_id{null_element_id}; - ElementIdentifier previous_sibling_id{null_element_id}; - ElementIdentifier next_sibling_id{null_element_id}; + StoredId parent_id{null_element_id}; + StoredId first_child_id{null_element_id}; + StoredId last_child_id{null_element_id}; + StoredId previous_sibling_id{null_element_id}; + StoredId next_sibling_id{null_element_id}; ElementType type{ElementType::none}; pugi::xml_node node; }; struct Table final { - ElementIdentifier first_column_id{null_element_id}; - ElementIdentifier last_column_id{null_element_id}; + StoredId first_column_id{null_element_id}; + StoredId last_column_id{null_element_id}; }; struct Text final { @@ -50,8 +57,8 @@ class ElementRegistry final { struct Cell final { std::uint32_t end{0}; + StoredId element_id{null_element_id}; pugi::xml_node node; - ElementIdentifier element_id{null_element_id}; }; struct Row final { @@ -66,8 +73,8 @@ class ElementRegistry final { std::vector rows; std::vector cells; - ElementIdentifier first_shape_id{null_element_id}; - ElementIdentifier last_shape_id{null_element_id}; + StoredId first_shape_id{null_element_id}; + StoredId last_shape_id{null_element_id}; void register_column(std::uint32_t column, std::uint32_t repeated, pugi::xml_node element); @@ -98,6 +105,64 @@ class ElementRegistry final { bool is_repeated{false}; }; + /// Payloads keyed by element id and written in id order, so a lookup is a + /// binary search. A deque: `create_*_element` hands out a reference. + template class SideTable final { + public: + T &emplace(const ElementIdentifier id, T value) { + if (!m_entries.empty() && m_entries.back().first >= id) { + throw std::invalid_argument( + "ElementRegistry::SideTable::emplace: identifier out of order"); + } + return m_entries.emplace_back(static_cast(id), std::move(value)) + .second; + } + + [[nodiscard]] T *find(const ElementIdentifier id) { + const auto it = + std::ranges::lower_bound(m_entries, id, {}, &Entry::first); + return it != std::end(m_entries) && it->first == id ? &it->second + : nullptr; + } + + [[nodiscard]] const T *find(const ElementIdentifier id) const { + const auto it = + std::ranges::lower_bound(m_entries, id, {}, &Entry::first); + return it != std::end(m_entries) && it->first == id ? &it->second + : nullptr; + } + + [[nodiscard]] T &at(const ElementIdentifier id) { + T *entry = find(id); + if (entry == nullptr) { + throw std::out_of_range( + "ElementRegistry::SideTable::at: identifier not found"); + } + return *entry; + } + + [[nodiscard]] const T &at(const ElementIdentifier id) const { + const T *entry = find(id); + if (entry == nullptr) { + throw std::out_of_range( + "ElementRegistry::SideTable::at: identifier not found"); + } + return *entry; + } + + void clear() noexcept { m_entries.clear(); } + + [[nodiscard]] auto begin() const noexcept { return m_entries.begin(); } + [[nodiscard]] auto end() const noexcept { return m_entries.end(); } + [[nodiscard]] auto begin() noexcept { return m_entries.begin(); } + [[nodiscard]] auto end() noexcept { return m_entries.end(); } + + private: + using Entry = std::pair; + + std::deque m_entries; + }; + void clear() noexcept; [[nodiscard]] std::size_t size() const noexcept; @@ -144,22 +209,20 @@ class ElementRegistry final { /// holds on to, and a vector both invalidates it and peaks holding two /// copies. std::deque m_elements; - std::unordered_map m_texts; - std::unordered_map m_tables; - std::unordered_map m_sheets; - std::unordered_map m_sheet_cells; + SideTable m_texts; + SideTable m_tables; + SideTable m_sheets; + SideTable m_sheet_cells; + // out of id order: written when a list is resolved, not when it is parsed std::unordered_map m_list_types; std::unordered_map m_list_markers; /// Links `child_id` as the last child of the chain `first_id`/`last_id`. void link_child(ElementIdentifier parent_id, ElementIdentifier child_id, - ElementIdentifier &first_id, ElementIdentifier &last_id); + StoredId &first_id, StoredId &last_id); void check_element_id(ElementIdentifier id) const; - void check_text_id(ElementIdentifier id) const; - void check_table_id(ElementIdentifier id) const; void check_sheet_id(ElementIdentifier id) const; - void check_sheet_cell_id(ElementIdentifier id) const; }; } // namespace odr::internal::odf diff --git a/src/odr/internal/odf/odf_parser.cpp b/src/odr/internal/odf/odf_parser.cpp index 250d5eca2..67ff1a2e8 100644 --- a/src/odr/internal/odf/odf_parser.cpp +++ b/src/odr/internal/odf/odf_parser.cpp @@ -143,6 +143,22 @@ bool is_cell_empty(const pugi::xml_node cell_node) { cell_node.attribute("table:number-rows-spanned").as_uint(1) <= 1; } +/// One entry per row and per cell node at most - repeats collapse onto one. +void reserve_sheet(ElementRegistry::Sheet &sheet, const pugi::xml_node node) { + std::size_t rows = 0; + std::size_t cells = 0; + for_each_table_row(node, [&](const pugi::xml_node row_node) { + ++rows; + for ([[maybe_unused]] const pugi::xml_node cell_node : + row_node.children("table:table-cell")) { + ++cells; + } + }); + + sheet.rows.reserve(rows); + sheet.cells.reserve(cells); +} + std::tuple parse_sheet(ElementRegistry ®istry, const pugi::xml_node node) { if (!node) { @@ -151,6 +167,8 @@ parse_sheet(ElementRegistry ®istry, const pugi::xml_node node) { const auto &[element_id, _, sheet] = registry.create_sheet_element(node); + reserve_sheet(sheet, node); + TableCursor cursor; for_each_table_column(node, [&](const pugi::xml_node column_node) { diff --git a/test/data b/test/data new file mode 120000 index 000000000..8194f5eab --- /dev/null +++ b/test/data @@ -0,0 +1 @@ +/Users/andreas/odr/OpenDocument.core/test/data \ No newline at end of file diff --git a/uchardet-Target-relwithdebinfo.cmake b/uchardet-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..56e9c9d27 --- /dev/null +++ b/uchardet-Target-relwithdebinfo.cmake @@ -0,0 +1,71 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(uchardet_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(uchardet_FRAMEWORKS_FOUND_RELWITHDEBINFO "${uchardet_FRAMEWORKS_RELWITHDEBINFO}" "${uchardet_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(uchardet_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET uchardet_DEPS_TARGET) + add_library(uchardet_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET uchardet_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${uchardet_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${uchardet_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### uchardet_DEPS_TARGET to all of them +conan_package_library_targets("${uchardet_LIBS_RELWITHDEBINFO}" # libraries + "${uchardet_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${uchardet_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${uchardet_LIBRARY_TYPE_RELWITHDEBINFO}" + "${uchardet_IS_HOST_WINDOWS_RELWITHDEBINFO}" + uchardet_DEPS_TARGET + uchardet_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "uchardet" # package_name + "${uchardet_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${uchardet_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## GLOBAL TARGET PROPERTIES RelWithDebInfo ######################################## + set_property(TARGET uchardet::uchardet + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${uchardet_OBJECTS_RELWITHDEBINFO}> + $<$:${uchardet_LIBRARIES_TARGETS}> + ) + + if("${uchardet_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the package is not declaring any "cpp_info.libs" the package deps, system libs, + # frameworks etc are not linked to the imported targets and we need to do it to the + # global target + set_property(TARGET uchardet::uchardet + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + uchardet_DEPS_TARGET) + endif() + + set_property(TARGET uchardet::uchardet + APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${uchardet_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET uchardet::uchardet + APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${uchardet_INCLUDE_DIRS_RELWITHDEBINFO}>) + # Necessary to find LINK shared libraries in Linux + set_property(TARGET uchardet::uchardet + APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${uchardet_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET uchardet::uchardet + APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${uchardet_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET uchardet::uchardet + APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${uchardet_COMPILE_OPTIONS_RELWITHDEBINFO}>) + +########## For the modules (FindXXX) +set(uchardet_LIBRARIES_RELWITHDEBINFO uchardet::uchardet) diff --git a/uchardet-config-version.cmake b/uchardet-config-version.cmake new file mode 100644 index 000000000..162388bda --- /dev/null +++ b/uchardet-config-version.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "0.0.8") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if("0.0.8" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1}) + else() + set(CVF_VERSION_MAJOR "0.0.8") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/uchardet-config.cmake b/uchardet-config.cmake new file mode 100644 index 000000000..b0ec09629 --- /dev/null +++ b/uchardet-config.cmake @@ -0,0 +1,44 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(uchardet_FIND_QUIETLY) + set(uchardet_MESSAGE_MODE VERBOSE) +else() + set(uchardet_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/uchardetTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${uchardet_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(uchardet_VERSION_STRING "0.0.8") +set(uchardet_INCLUDE_DIRS ${uchardet_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(uchardet_INCLUDE_DIR ${uchardet_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(uchardet_LIBRARIES ${uchardet_LIBRARIES_RELWITHDEBINFO} ) +set(uchardet_DEFINITIONS ${uchardet_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${uchardet_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${uchardet_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + diff --git a/uchardet-relwithdebinfo-armv8-data.cmake b/uchardet-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..448f95e8e --- /dev/null +++ b/uchardet-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,49 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +set(uchardet_COMPONENT_NAMES "") +if(DEFINED uchardet_FIND_DEPENDENCY_NAMES) + list(APPEND uchardet_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES uchardet_FIND_DEPENDENCY_NAMES) +else() + set(uchardet_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(uchardet_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/b/uchar435bc08c03cd6/p") +set(uchardet_BUILD_MODULES_PATHS_RELWITHDEBINFO ) + + +set(uchardet_INCLUDE_DIRS_RELWITHDEBINFO "${uchardet_PACKAGE_FOLDER_RELWITHDEBINFO}/include") +set(uchardet_RES_DIRS_RELWITHDEBINFO ) +set(uchardet_DEFINITIONS_RELWITHDEBINFO ) +set(uchardet_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(uchardet_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(uchardet_OBJECTS_RELWITHDEBINFO ) +set(uchardet_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(uchardet_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(uchardet_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(uchardet_LIB_DIRS_RELWITHDEBINFO "${uchardet_PACKAGE_FOLDER_RELWITHDEBINFO}/lib") +set(uchardet_BIN_DIRS_RELWITHDEBINFO ) +set(uchardet_LIBRARY_TYPE_RELWITHDEBINFO STATIC) +set(uchardet_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(uchardet_LIBS_RELWITHDEBINFO uchardet) +set(uchardet_SYSTEM_LIBS_RELWITHDEBINFO ) +set(uchardet_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(uchardet_FRAMEWORKS_RELWITHDEBINFO ) +set(uchardet_BUILD_DIRS_RELWITHDEBINFO ) +set(uchardet_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(uchardet_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${uchardet_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${uchardet_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(uchardet_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${uchardet_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${uchardet_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${uchardet_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(uchardet_COMPONENTS_RELWITHDEBINFO ) \ No newline at end of file diff --git a/uchardetTargets.cmake b/uchardetTargets.cmake new file mode 100644 index 000000000..9a9904e19 --- /dev/null +++ b/uchardetTargets.cmake @@ -0,0 +1,25 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/uchardet-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${uchardet_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${uchardet_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET uchardet::uchardet) + add_library(uchardet::uchardet INTERFACE IMPORTED) + message(${uchardet_MESSAGE_MODE} "Conan: Target declared 'uchardet::uchardet'") +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/uchardet-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file diff --git a/utf8cpp-Target-relwithdebinfo.cmake b/utf8cpp-Target-relwithdebinfo.cmake new file mode 100644 index 000000000..067b4c2f2 --- /dev/null +++ b/utf8cpp-Target-relwithdebinfo.cmake @@ -0,0 +1,71 @@ +# Avoid multiple calls to find_package to append duplicated properties to the targets +include_guard()########### VARIABLES ####################################################################### +############################################################################################# +set(utfcpp_FRAMEWORKS_FOUND_RELWITHDEBINFO "") # Will be filled later +conan_find_apple_frameworks(utfcpp_FRAMEWORKS_FOUND_RELWITHDEBINFO "${utfcpp_FRAMEWORKS_RELWITHDEBINFO}" "${utfcpp_FRAMEWORK_DIRS_RELWITHDEBINFO}") + +set(utfcpp_LIBRARIES_TARGETS "") # Will be filled later + + +######## Create an interface target to contain all the dependencies (frameworks, system and conan deps) +if(NOT TARGET utfcpp_DEPS_TARGET) + add_library(utfcpp_DEPS_TARGET INTERFACE IMPORTED) +endif() + +set_property(TARGET utfcpp_DEPS_TARGET + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${utfcpp_FRAMEWORKS_FOUND_RELWITHDEBINFO}> + $<$:${utfcpp_SYSTEM_LIBS_RELWITHDEBINFO}> + $<$:>) + +####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the +####### utfcpp_DEPS_TARGET to all of them +conan_package_library_targets("${utfcpp_LIBS_RELWITHDEBINFO}" # libraries + "${utfcpp_LIB_DIRS_RELWITHDEBINFO}" # package_libdir + "${utfcpp_BIN_DIRS_RELWITHDEBINFO}" # package_bindir + "${utfcpp_LIBRARY_TYPE_RELWITHDEBINFO}" + "${utfcpp_IS_HOST_WINDOWS_RELWITHDEBINFO}" + utfcpp_DEPS_TARGET + utfcpp_LIBRARIES_TARGETS # out_libraries_targets + "_RELWITHDEBINFO" + "utfcpp" # package_name + "${utfcpp_NO_SONAME_MODE_RELWITHDEBINFO}") # soname + +# FIXME: What is the result of this for multi-config? All configs adding themselves to path? +set(CMAKE_MODULE_PATH ${utfcpp_BUILD_DIRS_RELWITHDEBINFO} ${CMAKE_MODULE_PATH}) + +########## GLOBAL TARGET PROPERTIES RelWithDebInfo ######################################## + set_property(TARGET utf8cpp::utf8cpp + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + $<$:${utfcpp_OBJECTS_RELWITHDEBINFO}> + $<$:${utfcpp_LIBRARIES_TARGETS}> + ) + + if("${utfcpp_LIBS_RELWITHDEBINFO}" STREQUAL "") + # If the package is not declaring any "cpp_info.libs" the package deps, system libs, + # frameworks etc are not linked to the imported targets and we need to do it to the + # global target + set_property(TARGET utf8cpp::utf8cpp + APPEND PROPERTY INTERFACE_LINK_LIBRARIES + utfcpp_DEPS_TARGET) + endif() + + set_property(TARGET utf8cpp::utf8cpp + APPEND PROPERTY INTERFACE_LINK_OPTIONS + $<$:${utfcpp_LINKER_FLAGS_RELWITHDEBINFO}>) + set_property(TARGET utf8cpp::utf8cpp + APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $<$:${utfcpp_INCLUDE_DIRS_RELWITHDEBINFO}>) + # Necessary to find LINK shared libraries in Linux + set_property(TARGET utf8cpp::utf8cpp + APPEND PROPERTY INTERFACE_LINK_DIRECTORIES + $<$:${utfcpp_LIB_DIRS_RELWITHDEBINFO}>) + set_property(TARGET utf8cpp::utf8cpp + APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS + $<$:${utfcpp_COMPILE_DEFINITIONS_RELWITHDEBINFO}>) + set_property(TARGET utf8cpp::utf8cpp + APPEND PROPERTY INTERFACE_COMPILE_OPTIONS + $<$:${utfcpp_COMPILE_OPTIONS_RELWITHDEBINFO}>) + +########## For the modules (FindXXX) +set(utfcpp_LIBRARIES_RELWITHDEBINFO utf8cpp::utf8cpp) diff --git a/utf8cpp-config-version.cmake b/utf8cpp-config-version.cmake new file mode 100644 index 000000000..949115607 --- /dev/null +++ b/utf8cpp-config-version.cmake @@ -0,0 +1,21 @@ +set(PACKAGE_VERSION "4.0.9") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + if("4.0.9" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1}) + else() + set(CVF_VERSION_MAJOR "4.0.9") + endif() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/utf8cpp-config.cmake b/utf8cpp-config.cmake new file mode 100644 index 000000000..2dc750e7a --- /dev/null +++ b/utf8cpp-config.cmake @@ -0,0 +1,44 @@ +########## MACROS ########################################################################### +############################################################################################# + +# Requires CMake > 3.15 +if(${CMAKE_VERSION} VERSION_LESS "3.15") + message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15") +endif() + +if(utf8cpp_FIND_QUIETLY) + set(utf8cpp_MESSAGE_MODE VERBOSE) +else() + set(utf8cpp_MESSAGE_MODE STATUS) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/utf8cppTargets.cmake) +include(CMakeFindDependencyMacro) + +check_build_type_defined() + +foreach(_DEPENDENCY ${utfcpp_FIND_DEPENDENCY_NAMES} ) + # Check that we have not already called a find_package with the transitive dependency + if(NOT ${_DEPENDENCY}_FOUND) + find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE}) + endif() +endforeach() + +set(utf8cpp_VERSION_STRING "4.0.9") +set(utf8cpp_INCLUDE_DIRS ${utfcpp_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(utf8cpp_INCLUDE_DIR ${utfcpp_INCLUDE_DIRS_RELWITHDEBINFO} ) +set(utf8cpp_LIBRARIES ${utfcpp_LIBRARIES_RELWITHDEBINFO} ) +set(utf8cpp_DEFINITIONS ${utfcpp_DEFINITIONS_RELWITHDEBINFO} ) + + +# Definition of extra CMake variables from cmake_extra_variables + + +# Only the last installed configuration BUILD_MODULES are included to avoid the collision +foreach(_BUILD_MODULE ${utfcpp_BUILD_MODULES_PATHS_RELWITHDEBINFO} ) + message(${utf8cpp_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'") + include(${_BUILD_MODULE}) +endforeach() + + diff --git a/utf8cpp-relwithdebinfo-armv8-data.cmake b/utf8cpp-relwithdebinfo-armv8-data.cmake new file mode 100644 index 000000000..e51573fe1 --- /dev/null +++ b/utf8cpp-relwithdebinfo-armv8-data.cmake @@ -0,0 +1,50 @@ +########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG ##################### +############################################################################################# + +set(utfcpp_COMPONENT_NAMES "") +if(DEFINED utfcpp_FIND_DEPENDENCY_NAMES) + list(APPEND utfcpp_FIND_DEPENDENCY_NAMES ) + list(REMOVE_DUPLICATES utfcpp_FIND_DEPENDENCY_NAMES) +else() + set(utfcpp_FIND_DEPENDENCY_NAMES ) +endif() + +########### VARIABLES ####################################################################### +############################################################################################# +set(utfcpp_PACKAGE_FOLDER_RELWITHDEBINFO "/Users/andreas/.conan2/p/utfcp412baeeda02ec/p") +set(utfcpp_BUILD_MODULES_PATHS_RELWITHDEBINFO ) + + +set(utfcpp_INCLUDE_DIRS_RELWITHDEBINFO "${utfcpp_PACKAGE_FOLDER_RELWITHDEBINFO}/include" + "${utfcpp_PACKAGE_FOLDER_RELWITHDEBINFO}/include/utf8cpp") +set(utfcpp_RES_DIRS_RELWITHDEBINFO ) +set(utfcpp_DEFINITIONS_RELWITHDEBINFO ) +set(utfcpp_SHARED_LINK_FLAGS_RELWITHDEBINFO ) +set(utfcpp_EXE_LINK_FLAGS_RELWITHDEBINFO ) +set(utfcpp_OBJECTS_RELWITHDEBINFO ) +set(utfcpp_COMPILE_DEFINITIONS_RELWITHDEBINFO ) +set(utfcpp_COMPILE_OPTIONS_C_RELWITHDEBINFO ) +set(utfcpp_COMPILE_OPTIONS_CXX_RELWITHDEBINFO ) +set(utfcpp_LIB_DIRS_RELWITHDEBINFO ) +set(utfcpp_BIN_DIRS_RELWITHDEBINFO ) +set(utfcpp_LIBRARY_TYPE_RELWITHDEBINFO UNKNOWN) +set(utfcpp_IS_HOST_WINDOWS_RELWITHDEBINFO 0) +set(utfcpp_LIBS_RELWITHDEBINFO ) +set(utfcpp_SYSTEM_LIBS_RELWITHDEBINFO ) +set(utfcpp_FRAMEWORK_DIRS_RELWITHDEBINFO ) +set(utfcpp_FRAMEWORKS_RELWITHDEBINFO ) +set(utfcpp_BUILD_DIRS_RELWITHDEBINFO ) +set(utfcpp_NO_SONAME_MODE_RELWITHDEBINFO FALSE) + + +# COMPOUND VARIABLES +set(utfcpp_COMPILE_OPTIONS_RELWITHDEBINFO + "$<$:${utfcpp_COMPILE_OPTIONS_CXX_RELWITHDEBINFO}>" + "$<$:${utfcpp_COMPILE_OPTIONS_C_RELWITHDEBINFO}>") +set(utfcpp_LINKER_FLAGS_RELWITHDEBINFO + "$<$,SHARED_LIBRARY>:${utfcpp_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,MODULE_LIBRARY>:${utfcpp_SHARED_LINK_FLAGS_RELWITHDEBINFO}>" + "$<$,EXECUTABLE>:${utfcpp_EXE_LINK_FLAGS_RELWITHDEBINFO}>") + + +set(utfcpp_COMPONENTS_RELWITHDEBINFO ) \ No newline at end of file diff --git a/utf8cppTargets.cmake b/utf8cppTargets.cmake new file mode 100644 index 000000000..3f9a7928b --- /dev/null +++ b/utf8cppTargets.cmake @@ -0,0 +1,33 @@ +# Load the debug and release variables +file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/utf8cpp-*-data.cmake") + +foreach(f ${DATA_FILES}) + include(${f}) +endforeach() + +# Create the targets for all the components +foreach(_COMPONENT ${utfcpp_COMPONENT_NAMES} ) + if(NOT TARGET ${_COMPONENT}) + add_library(${_COMPONENT} INTERFACE IMPORTED) + message(${utf8cpp_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'") + endif() +endforeach() + +if(NOT TARGET utf8cpp::utf8cpp) + add_library(utf8cpp::utf8cpp INTERFACE IMPORTED) + message(${utf8cpp_MESSAGE_MODE} "Conan: Target declared 'utf8cpp::utf8cpp'") +endif() +if(NOT TARGET utf8::cpp) + add_library(utf8::cpp INTERFACE IMPORTED) + set_property(TARGET utf8::cpp PROPERTY INTERFACE_LINK_LIBRARIES utf8cpp::utf8cpp) +endif() +if(NOT TARGET utf8cpp) + add_library(utf8cpp INTERFACE IMPORTED) + set_property(TARGET utf8cpp PROPERTY INTERFACE_LINK_LIBRARIES utf8cpp::utf8cpp) +endif() +# Load the debug and release library finders +file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/utf8cpp-Target-*.cmake") + +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() \ No newline at end of file