opnsense-ports/audio/audacity/files/patch-cmake-proxies_cmake-modules_AudacityDependencies.cmake
Franco Fichtner ee2783e293 */*: sync with upstream
Taken from: FreeBSD
2021-11-01 15:57:04 +01:00

227 lines
7.6 KiB
CMake

--- cmake-proxies/cmake-modules/AudacityDependencies.cmake.orig 2021-08-27 22:30:37 UTC
+++ cmake-proxies/cmake-modules/AudacityDependencies.cmake
@@ -1,11 +1,14 @@
# Load Conan
-include( conan )
-conan_add_remote(NAME audacity
- URL https://artifactory.audacityteam.org/artifactory/api/conan/conan-local
- VERIFY_SSL True
-)
+if( ${_OPT}conan_enabled )
+ include( conan )
+ conan_add_remote(NAME audacity
+ URL https://artifactory.audacityteam.org/artifactory/api/conan/conan-local
+ VERIFY_SSL True
+ )
+endif()
+
set( CONAN_BUILD_REQUIRES )
set( CONAN_REQUIRES )
set( CONAN_PACKAGE_OPTIONS )
@@ -13,24 +16,30 @@ set( CONAN_ONLY_DEBUG_RELEASE )
set( CONAN_CONFIG_OPTIONS )
set( CONAN_RESOLVE_LIST )
-# Add a Conan dependency
-# Example usage:
-# add_conan_lib(
-# wxWdidget
-# wxwidgets/3.1.3-audacity
-# OPTION_NAME wxwidgets
-# SYMBOL WXWIDGET
-# REQUIRED
-# ALWAYS_ALLOW_CONAN_FALLBACK
-# PKG_CONFIG "wxwidgets >= 3.1.3"
-# FIND_PACKAGE_OPTIONS COMPONENTS adv base core html qa xml
-# INTERFACE_NAME wxwidgets::wxwidgets
-# HAS_ONLY_DEBUG_RELEASE
-# CONAN_OPTIONS
-# wxwidgets:shared=True
-# )
+#[[
+Add a Conan dependency
+Example usage:
+add_conan_lib(
+ wxWdidget
+ wxwidgets/3.1.3-audacity
+ OPTION_NAME wxwidgets
+ SYMBOL WXWIDGET
+ REQUIRED
+ ALWAYS_ALLOW_CONAN_FALLBACK
+ PKG_CONFIG "wxwidgets >= 3.1.3"
+ FIND_PACKAGE_OPTIONS COMPONENTS adv base core html qa xml
+ INTERFACE_NAME wxwidgets::wxwidgets
+ HAS_ONLY_DEBUG_RELEASE
+ CONAN_OPTIONS
+ wxwidgets:shared=True
+)
+
+PKG_CONFIG accepts a list of possible package configurations.
+add_conan_lib will iterate over it one by one until the library is found.
+]]
+
function (add_conan_lib package conan_package_name )
# Extract the list of packages from the function args
list( SUBLIST ARGV 2 -1 options )
@@ -54,6 +63,8 @@ function (add_conan_lib package conan_package_name )
set( list_mode on )
set( allow_find_package on )
set( current_var "find_package_options" )
+ elseif ( opt STREQUAL "ALLOW_FIND_PACKAGE" )
+ set ( allow_find_package on )
elseif ( opt STREQUAL "CONAN_OPTIONS" )
set( list_mode on )
set( current_var "conan_package_options" )
@@ -93,14 +104,23 @@ function (add_conan_lib package conan_package_name )
set( option_desc "local" )
- if( pkg_config_options OR allow_find_package )
+ if( pkg_config_options OR allow_find_package OR NOT ${_OPT}conan_enabled )
set( sysopt "system" )
string( PREPEND option_desc "system (if available), " )
- set( default "${${_OPT}lib_preference}" )
+
+ if( ${_OPT}conan_enabled )
+ set( default "${${_OPT}lib_preference}" )
+ else()
+ set( default "system" )
+ endif()
else()
set( default "local" )
endif()
+ if( ${_OPT}conan_enabled )
+ set( localopt "local" )
+ endif()
+
if( NOT required )
set( reqopt "off" )
string( APPEND option_desc ", off" )
@@ -109,7 +129,7 @@ function (add_conan_lib package conan_package_name )
cmd_option( ${option_name}
"Use ${option_name_base} library [${option_desc}]"
"${default}"
- STRINGS ${sysopt} "local" ${reqopt}
+ STRINGS ${sysopt} ${localopt} ${reqopt}
)
# Early bail out
@@ -129,26 +149,28 @@ function (add_conan_lib package conan_package_name )
return()
endif()
- if( ${option_name} STREQUAL "system" )
+ if( ${option_name} STREQUAL "system" OR NOT ${_OPT}conan_enabled )
if( pkg_config_options )
- pkg_check_modules( PKG_${package} ${pkg_config_options} )
+ foreach(variant ${pkg_config_options})
+ pkg_check_modules( PKG_${package} ${variant} )
- if( PKG_${package}_FOUND )
- message( STATUS "Using '${package}' system library" )
-
- # Create the target interface library
- add_library( ${interface_name} INTERFACE IMPORTED GLOBAL)
+ if( PKG_${package}_FOUND )
+ message( STATUS "Using '${package}' system library" )
- # Retrieve the package information
- get_package_interface( PKG_${package} )
-
- # And add it to our target
- target_include_directories( ${interface_name} INTERFACE ${INCLUDES} )
- target_link_libraries( ${interface_name} INTERFACE ${LIBRARIES} )
+ # Create the target interface library
+ add_library( ${interface_name} INTERFACE IMPORTED GLOBAL)
+
+ # Retrieve the package information
+ get_package_interface( PKG_${package} )
+
+ # And add it to our target
+ target_include_directories( ${interface_name} INTERFACE ${INCLUDES} )
+ target_link_libraries( ${interface_name} INTERFACE ${LIBRARIES} )
- message(STATUS "Added inteface ${interface_name} ${INCLUDES} ${LIBRARIES}")
- return()
- endif()
+ message(STATUS "Added inteface ${interface_name} ${INCLUDES} ${LIBRARIES}")
+ return()
+ endif()
+ endforeach()
endif()
if( allow_find_package )
@@ -160,7 +182,7 @@ function (add_conan_lib package conan_package_name )
endif()
endif()
- if( system_only )
+ if( system_only OR NOT ${_OPT}conan_enabled )
message( FATAL_ERROR "Failed to find the system package ${package}" )
else()
set( ${option_name} "local" )
@@ -237,34 +259,36 @@ function ( _conan_install build_type )
endfunction()
macro( resolve_conan_dependencies )
- message(STATUS
- "Executing Conan: \
- REQUIRES ${CONAN_REQUIRES}
- GENERATORS cmake_find_package_multi
- BUILD_REQUIRES ${CONAN_BUILD_REQUIRES}
- ${CONAN_CONFIG_OPTIONS}
- OPTIONS ${CONAN_PACKAGE_OPTIONS}
- ")
+ if( ${_OPT}conan_enabled )
+ message(STATUS
+ "Executing Conan: \
+ REQUIRES ${CONAN_REQUIRES}
+ GENERATORS cmake_find_package_multi
+ BUILD_REQUIRES ${CONAN_BUILD_REQUIRES}
+ ${CONAN_CONFIG_OPTIONS}
+ OPTIONS ${CONAN_PACKAGE_OPTIONS}
+ ")
- if(MSVC OR XCODE)
- foreach(TYPE ${CMAKE_CONFIGURATION_TYPES})
- _conan_install(${TYPE})
- endforeach()
- else()
- _conan_install(${CMAKE_BUILD_TYPE})
- endif()
+ if(MSVC OR XCODE)
+ foreach(TYPE ${CMAKE_CONFIGURATION_TYPES})
+ _conan_install(${TYPE})
+ endforeach()
+ else()
+ _conan_install(${CMAKE_BUILD_TYPE})
+ endif()
- list( REMOVE_DUPLICATES CONAN_REQUIRES )
+ list( REMOVE_DUPLICATES CONAN_REQUIRES )
- foreach( package ${CONAN_RESOLVE_LIST} )
- message(STATUS "Resolving Conan library ${package}")
+ foreach( package ${CONAN_RESOLVE_LIST} )
+ message(STATUS "Resolving Conan library ${package}")
- find_package(${package} CONFIG)
+ find_package(${package} CONFIG)
- if (NOT ${package}_FOUND)
- message( FATAL_ERROR "Failed to find the conan package ${package}" )
- endif()
- endforeach()
+ if (NOT ${package}_FOUND)
+ message( FATAL_ERROR "Failed to find the conan package ${package}" )
+ endif()
+ endforeach()
+ endif()
file(GLOB dependency_helpers "${AUDACITY_MODULE_PATH}/dependencies/*.cmake")