diff options
Diffstat (limited to 'vcpkg/ports/seacas/fix_tpl_libs.patch')
| -rw-r--r-- | vcpkg/ports/seacas/fix_tpl_libs.patch | 288 |
1 files changed, 288 insertions, 0 deletions
diff --git a/vcpkg/ports/seacas/fix_tpl_libs.patch b/vcpkg/ports/seacas/fix_tpl_libs.patch new file mode 100644 index 0000000..c042765 --- /dev/null +++ b/vcpkg/ports/seacas/fix_tpl_libs.patch @@ -0,0 +1,288 @@ +diff --git a/cmake/tribits/core/package_arch/TribitsAddExecutable.cmake b/cmake/tribits/core/package_arch/TribitsAddExecutable.cmake +index f08e7b78b..1274e8fce 100644 +--- a/cmake/tribits/core/package_arch/TribitsAddExecutable.cmake ++++ b/cmake/tribits/core/package_arch/TribitsAddExecutable.cmake +@@ -419,7 +419,11 @@ function(tribits_add_executable EXE_NAME) + foreach(depPkg IN LISTS ${PACKAGE_NAME}_LIB_ENABLED_DEPENDENCIES + ${PACKAGE_NAME}_TEST_ENABLED_DEPENDENCIES + ) +- target_link_libraries(${EXE_BINARY_NAME} PUBLIC ${depPkg}::all_libs) ++ if(TARGET TPL::${depPkg}::all_libs) ++ target_link_libraries(${EXE_BINARY_NAME} PUBLIC TPL::${depPkg}::all_libs) ++ else() ++ target_link_libraries(${EXE_BINARY_NAME} PUBLIC ${depPkg}::all_libs) ++ endif() + endforeach() + foreach(testOnlyLib ${PARSE_TESTONLYLIBS}) + target_link_libraries(${EXE_BINARY_NAME} PUBLIC +diff --git a/cmake/tribits/core/package_arch/TribitsAddLibrary.cmake b/cmake/tribits/core/package_arch/TribitsAddLibrary.cmake +index 4bac9f943..398002e33 100644 +--- a/cmake/tribits/core/package_arch/TribitsAddLibrary.cmake ++++ b/cmake/tribits/core/package_arch/TribitsAddLibrary.cmake +@@ -468,7 +468,11 @@ function(tribits_add_library LIBRARY_NAME_IN) + target_link_libraries(${LIBRARY_NAME} PUBLIC ${${PACKAGE_NAME}_LIBRARIES}) + # ${PACKAGE_NAME}_LIB_ENABLED_DEPENDENCIES + foreach(depPkg IN LISTS ${PACKAGE_NAME}_LIB_ENABLED_DEPENDENCIES) +- target_link_libraries(${LIBRARY_NAME} PUBLIC ${depPkg}::all_libs) ++ if(TARGET TPL::${depPkg}::all_libs) ++ target_link_libraries(${LIBRARY_NAME} PUBLIC TPL::${depPkg}::all_libs) ++ else() ++ target_link_libraries(${LIBRARY_NAME} PUBLIC ${depPkg}::all_libs) ++ endif() + endforeach() + # ${PACKAGE_NAME}_TEST_ENABLED_DEPENDENCIES (TESTONLY lib) + if (PARSE_TESTONLY) +diff --git a/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake b/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake +index 2d041a2ca..c49a2c019 100644 +--- a/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake ++++ b/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake +@@ -132,7 +132,7 @@ endfunction() + function(tribits_extpkg_install_config_file tplName tplConfigFile) + install( + FILES "${tplConfigFile}" +- DESTINATION "${${PROJECT_NAME}_INSTALL_LIB_DIR}/external_packages/${tplName}" ++ DESTINATION "${${PROJECT_NAME}_INSTALL_LIB_DIR}/external_packages/TPL-Seacas-${tplName}" + ) + endfunction() + +@@ -159,7 +159,7 @@ function(tribits_extpkg_install_config_version_file tplName + ) + install( + FILES "${tplConfigVersionFile}" +- DESTINATION "${${PROJECT_NAME}_INSTALL_LIB_DIR}/external_packages/${tplName}" ++ DESTINATION "${${PROJECT_NAME}_INSTALL_LIB_DIR}/external_packages/TPL-Seacas-${tplName}" + ) + endfunction() + +@@ -258,7 +258,7 @@ function(tribits_extpkg_write_config_file_str tplName tplConfigFileStrOut) + "# Generated by CMake, do not edit!\n" + "\n" + "# Guard against multiple inclusion\n" +- "if (TARGET ${tplName}::all_libs)\n" ++ "if (TARGET TPL::${tplName}::all_libs)\n" + " return()\n" + "endif()\n" + "\n" +@@ -333,9 +333,9 @@ function(tribits_extpkg_add_find_upstream_dependencies_str + message(FATAL_ERROR "ERROR: ${upstreamTplDepName}_DIR is empty!") + endif() + string(APPEND configFileFragStr +- "if (NOT TARGET ${upstreamTplDepName}::all_libs)\n" ++ "if (NOT TARGET TPL::${upstreamTplDepName}::all_libs)\n" + " set(${upstreamTplDepName}_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../${upstreamTplDepName}\")\n" +- " find_dependency(${upstreamTplDepName} REQUIRED CONFIG \${${tplName}_SearchNoOtherPathsArgs})\n" ++ " find_dependency(TPL-Seacas-${upstreamTplDepName} REQUIRED CONFIG \${${tplName}_SearchNoOtherPathsArgs})\n" + " unset(${upstreamTplDepName}_DIR)\n" + "endif()\n" + "\n" +@@ -440,6 +440,7 @@ function(tribits_extpkg_process_libraries_list tplName) + elseif (libEntryType STREQUAL "GENERAL_LINK_OPTION") + message_wrapper("-- NOTE: Moving the general link argument '${libentry}' in TPL_${tplName}_LIBRARIES forward on the link line which may change the link and break the link!") + list(APPEND libLinkFlagsList "${libentry}") ++ elseif(libEntryType STREQUAL "TARGET_NAME") + else() + tribits_extpkg_process_libraries_list_library_entry( + ${tplName} "${libentry}" ${libEntryType} libTargets lastLibProcessed +@@ -501,6 +501,8 @@ function(tribits_tpl_libraries_entry_type libentry libEntryTypeOut) + set(libEntryType FULL_LIB_PATH) + elseif (libentry MATCHES "^[a-zA-Z_][a-zA-Z0-9_-]*$") + set(libEntryType LIB_NAME) ++ elseif (TARGET "${libentry}") ++ set(libEntryType TARGET_NAME) + else() + set(libEntryType UNSUPPORTED_LIB_ENTRY) + endif() +@@ -529,7 +531,7 @@ function(tribits_extpkg_process_libraries_list_library_entry + tribits_extpkg_get_libname_and_path_from_libentry( + "${libentry}" ${libEntryType} libname libpath) + # Create IMPORTED library target +- set(prefixed_libname "${tplName}::${libname}") ++ set(prefixed_libname "TPL::${tplName}::${libname}") + if (NOT (prefixed_libname IN_LIST libTargets)) + tribits_extpkg_append_add_library_str (${libname} ${prefixed_libname} + ${libEntryType} "${libpath}" configFileStr) +@@ -571,6 +573,9 @@ function(tribits_extpkg_get_libname_and_path_from_libentry + elseif (libEntryType STREQUAL "LIB_NAME") + set(libname "${libentry}") + set(libpath "") ++ elseif (libEntryType STREQUAL "TARGET_NAME") ++ string(REGEX REPLACE "([^:]*::)+" "" libname "${libentry}") ++ set(libpath "") + else() + message(FATAL_ERROR "Error libEntryType='${libEntryType}' not supported here!") + endif() +@@ -605,6 +610,13 @@ function(tribits_extpkg_append_add_library_str + "set_target_properties(${prefixed_libname} PROPERTIES\n" + " IMPORTED_LIBNAME \"${libname}\")\n" + ) ++ elseif (libEntryType STREQUAL "TARGET_NAME") ++ string(REGEX REPLACE "([^:]*::)+" "" package_name "${libname}") ++ string(APPEND configFileStr ++ "#add_library(${prefixed_libname} IMPORTED INTERFACE)\n" ++ "#find_package(${package_name} REQUIRED)\n" ++ "#target_link_libraries(${prefixed_libname} INTERFACE ${libentry})\n" ++ ) + else() + message(FATAL_ERROR "Error libEntryType='${libEntryType}' not supported here!") + endif() +@@ -784,11 +796,11 @@ function(tribits_extpkg_create_all_libs_target tplName) + + # add_library() + string(APPEND configFileStr +- "add_library(${tplName}::all_libs INTERFACE IMPORTED)\n") ++ "add_library(TPL::${tplName}::all_libs INTERFACE IMPORTED)\n") + # target_link_libraries() + if (libTargets) + string(APPEND configFileStr +- "target_link_libraries(${tplName}::all_libs\n") ++ "target_link_libraries(TPL::${tplName}::all_libs\n") + foreach (libTarget IN LISTS libTargets) + string(APPEND configFileStr + " INTERFACE ${libTarget}\n") +@@ -799,7 +811,7 @@ function(tribits_extpkg_create_all_libs_target tplName) + # target_include_directories() + if (TPL_${tplName}_INCLUDE_DIRS) + string(APPEND configFileStr +- "target_include_directories(${tplName}::all_libs SYSTEM\n") ++ "target_include_directories(TPL::${tplName}::all_libs SYSTEM\n") + foreach (inclDir IN LISTS TPL_${tplName}_INCLUDE_DIRS) + string(APPEND configFileStr + " INTERFACE \"${inclDir}\"\n") +@@ -810,7 +822,7 @@ function(tribits_extpkg_create_all_libs_target tplName) + # target_link_options() + if (libLinkFlags) + string(APPEND configFileStr +- "target_link_options(${tplName}::all_libs\n") ++ "target_link_options(TPL::${tplName}::all_libs\n") + foreach (likLinkFlag IN LISTS libLinkFlags) + string(APPEND configFileStr + " INTERFACE \"${likLinkFlag}\"\n") +diff --git a/cmake/tribits/core/package_arch/TribitsProcessEnabledTpl.cmake b/cmake/tribits/core/package_arch/TribitsProcessEnabledTpl.cmake +index dcdde4ce6..aaec95d49 100644 +--- a/cmake/tribits/core/package_arch/TribitsProcessEnabledTpl.cmake ++++ b/cmake/tribits/core/package_arch/TribitsProcessEnabledTpl.cmake +@@ -154,9 +154,9 @@ function(tribits_process_enabled_tpl TPL_NAME) + set(buildDirExternalPkgsDir + "${${PROJECT_NAME}_BINARY_DIR}/${${PROJECT_NAME}_BUILD_DIR_EXTERNAL_PKGS_DIR}") + set(tplConfigFile +- "${buildDirExternalPkgsDir}/${TPL_NAME}/${TPL_NAME}Config.cmake") ++ "${buildDirExternalPkgsDir}/TPL-Seacas-${TPL_NAME}/TPL-Seacas-${TPL_NAME}Config.cmake") + set(tplConfigVersionFile +- "${buildDirExternalPkgsDir}/${TPL_NAME}/${TPL_NAME}ConfigVersion.cmake") ++ "${buildDirExternalPkgsDir}/TPL-Seacas-${TPL_NAME}/TPL-Seacas-${TPL_NAME}ConfigVersion.cmake") + tribits_extpkg_write_config_version_file(${TPL_NAME} + "${tplConfigVersionFile}") + tribits_extpkg_install_config_file(${TPL_NAME} "${tplConfigFile}") +diff --git a/cmake/tribits/core/package_arch/TribitsTplFindIncludeDirsAndLibraries.cmake b/cmake/tribits/core/package_arch/TribitsTplFindIncludeDirsAndLibraries.cmake +index d3cb102cf..3641799ac 100644 +--- a/cmake/tribits/core/package_arch/TribitsTplFindIncludeDirsAndLibraries.cmake ++++ b/cmake/tribits/core/package_arch/TribitsTplFindIncludeDirsAndLibraries.cmake +@@ -423,9 +423,7 @@ function(tribits_tpl_find_include_dirs_and_libraries TPL_NAME) + set(TPL_CMAKE_FIND_LIBRARY_SUFFIXES ${TPL_CMAKE_FIND_LIBRARY_SUFFIXES_DEFAULT}) + else() + if (WIN32) +- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a) + else() +- set(CMAKE_FIND_LIBRARY_SUFFIXES .a ) + endif() + endif() + #print_var(CMAKE_FIND_LIBRARY_SUFFIXES) +@@ -717,7 +717,7 @@ function(tribits_tpl_find_include_dirs_and_libraries TPL_NAME) + set(buildDirExternalPkgsDir + "${${PROJECT_NAME}_BINARY_DIR}/${${PROJECT_NAME}_BUILD_DIR_EXTERNAL_PKGS_DIR}") +- set(tplConfigFileBaseDir "${buildDirExternalPkgsDir}/${TPL_NAME}") ++ set(tplConfigFileBaseDir "${buildDirExternalPkgsDir}/TPL-Seacas-${TPL_NAME}") +- set(tplConfigFile "${tplConfigFileBaseDir}/${TPL_NAME}Config.cmake") ++ set(tplConfigFile "${tplConfigFileBaseDir}/TPL-Seacas-${TPL_NAME}Config.cmake") + tribits_extpkg_write_config_file(${TPL_NAME} "${tplConfigFile}") + if (NOT ${PROJECT_NAME}_ENABLE_INSTALLATION_TESTING) + include("${tplConfigFile}") +diff --git a/cmake/tribits/core/package_arch/TribitsWriteClientExportFiles.cmake b/cmake/tribits/core/package_arch/TribitsWriteClientExportFiles.cmake +index 1f31b6ec0..9bc1057b7 100644 +--- a/cmake/tribits/core/package_arch/TribitsWriteClientExportFiles.cmake ++++ b/cmake/tribits/core/package_arch/TribitsWriteClientExportFiles.cmake +@@ -289,7 +289,11 @@ function(tribits_write_flexible_package_client_export_files) + + set(${PACKAGE_NAME}_TPL_LIBRARIES "") + foreach(TPL ${ORDERED_FULL_TPL_SET}) +- list(APPEND ${PACKAGE_NAME}_TPL_LIBRARIES ${TPL}::all_libs) ++ if(TARGET TPL::${TPL}::all_libs) ++ list(APPEND ${PACKAGE_NAME}_TPL_LIBRARIES TPL::${TPL}::all_libs) ++ else() ++ list(APPEND ${PACKAGE_NAME}_TPL_LIBRARIES ${TPL}::all_libs) ++ endif() + endforeach() + + # Generate a note discouraging editing of the <package>Config.cmake file +@@ -587,17 +591,21 @@ function(tribits_append_dependent_package_config_file_includes_and_enables packa + "\n# Include configuration of dependent packages\n") + foreach(depPkg IN LISTS ${packageName}_LIB_ENABLED_DEPENDENCIES) + set(packageConfigBaseDir "") # Initially, no add include() ++ set(packageTarget "${depPkg}::all_libs") ++ set(packageConfig "${depPkg}Config.cmake") + if (${depPkg}_PACKAGE_BUILD_STATUS STREQUAL "INTERNAL") + set(packageConfigBaseDir "${pkgConfigFileBaseDir}/${depPkg}") + elseif (${depPkg}_PACKAGE_BUILD_STATUS STREQUAL "EXTERNAL") +- set(packageConfigBaseDir "${extPkgConfigFileBaseDir}/${depPkg}") ++ set(packageConfigBaseDir "${extPkgConfigFileBaseDir}/TPL-Seacas-${depPkg}") ++ set(packageTarget "TPL::${depPkg}::all_libs") ++ set(packageConfig "TPL-Seacas-${depPkg}Config.cmake") + else() + message(FATAL_ERROR "ERROR: ${depPkg}_PACKAGE_BUILD_STATUS='${${depPkg}_PACKAGE_BUILD_STATUS}' invalid!") + endif() + if (packageConfigBaseDir) + string(APPEND configFileStr +- "if (NOT TARGET ${depPkg}::all_libs)\n" +- " include(\"${packageConfigBaseDir}/${depPkg}Config.cmake\")\n" ++ "if (NOT TARGET ${packageTarget})\n" ++ " include(\"${packageConfigBaseDir}/${packageConfig}\")\n" + "endif()\n" + ) + endif() +diff --git a/cmake/tribits/core/package_arch/TribitsExternalPackageFindTplHelpers.cmake b/cmake/tribits/core/package_arch/TribitsExternalPackageFindTplHelpers.cmake +index 1873267bd..ed6254632 100644 +--- a/cmake/tribits/core/package_arch/TribitsExternalPackageFindTplHelpers.cmake ++++ b/cmake/tribits/core/package_arch/TribitsExternalPackageFindTplHelpers.cmake +@@ -120,17 +120,21 @@ function(tribits_extpkg_create_package_config_file_with_imported_targets + "set(${externalPkg}_DIR \"${${externalPkg}_DIR}\")\n" ) + endif() + string(APPEND configFileStr +- "find_dependency(${externalPkg})\n" +- "add_library(${tplName}::all_libs INTERFACE IMPORTED GLOBAL)\n" ++ "find_dependency(${externalPkg})\n" # This is outside TPL ++ "if(NOT TARGET ${tplName}::all_libs)\n" ++ " add_library(${tplName}::all_libs INTERFACE IMPORTED GLOBAL)\n" + ) + foreach (importedTarget IN LISTS PARSE_IMPORTED_TARGETS_FOR_ALL_LIBS) + string(APPEND configFileStr +- "target_link_libraries(${tplName}::all_libs INTERFACE ${importedTarget})\n") ++ " target_link_libraries(${tplName}::all_libs INTERFACE ${importedTarget})\n") + endforeach() ++ string(APPEND configFileStr ++ "endif()\n" ++ ) + set(buildDirExternalPkgsDir + "${${PROJECT_NAME}_BINARY_DIR}/${${PROJECT_NAME}_BUILD_DIR_EXTERNAL_PKGS_DIR}") + set(tplConfigFile +- "${buildDirExternalPkgsDir}/${tplName}/${tplName}Config.cmake") ++ "${buildDirExternalPkgsDir}/TPL-Seacas-${tplName}/TPL-Seacas-${tplName}Config.cmake") + file(WRITE "${tplConfigFile}" "${configFileStr}") + + endfunction() +diff --git a/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake b/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake +index c49a2c019..7c906ce26 100644 +--- a/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake ++++ b/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake +@@ -334,9 +334,10 @@ function(tribits_extpkg_add_find_upstream_dependencies_str + endif() + string(APPEND configFileFragStr + "if (NOT TARGET TPL::${upstreamTplDepName}::all_libs)\n" +- " set(${upstreamTplDepName}_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../${upstreamTplDepName}\")\n" ++ " set(TPL-Seacas-${upstreamTplDepName}_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../TPL-Seacas-${upstreamTplDepName}\")\n" # Looks for internal dep ++ " # Really only upstream ? NO ! THis is for ::all_libs targets in internal consumers\n" + " find_dependency(TPL-Seacas-${upstreamTplDepName} REQUIRED CONFIG \${${tplName}_SearchNoOtherPathsArgs})\n" +- " unset(${upstreamTplDepName}_DIR)\n" ++ " unset(TPL-Seacas-${upstreamTplDepName}_DIR)\n" + "endif()\n" + "\n" + ) |