@@ -938,9 +938,10 @@ endfunction()
938938# Setup package dependencies
939939function (_sb_resolve_dependencies)
940940 set (suffix "${ARGV0} " )
941+ get_property (source_packages GLOBAL PROPERTY SB_SOURCE_PACKAGES)
941942 get_property (packages GLOBAL PROPERTY SB_PACKAGES)
942943 get_property (aliases GLOBAL PROPERTY SB_ALIASES)
943- foreach (package ${packages} )
944+ foreach (package ${source_packages} ${ packages} )
944945 if (NOT TARGET ${package}${suffix} )
945946 continue ()
946947 endif ()
@@ -966,6 +967,9 @@ function(_sb_resolve_dependencies)
966967 string (REGEX REPLACE "^source:" "" real_dependency ${dependency} )
967968 set (real_suffix "-source" )
968969 set (real_package ${package} -source )
970+ if (NOT TARGET ${real_package} )
971+ string (REGEX REPLACE "-source-source$" "-source" real_package ${real_package} )
972+ endif ()
969973 else ()
970974 if (SUPERBUILD_DISABLE_DEPENDENCIES)
971975 continue ()
@@ -1343,6 +1347,9 @@ function(superbuild_package)
13431347 endif ()
13441348 _sb_make_source(${package} )
13451349
1350+ set (binary_dependencies "${SB_PACKAGE_DEPENDS} " )
1351+ list (FILTER binary_dependencies EXCLUDE REGEX "^source:.*" )
1352+
13461353 if (DEFINED SB_PACKAGE_BUILD
13471354 OR "${package} " STREQUAL "toolchain-info" )
13481355 if (TARGET ${package} -source )
@@ -1418,32 +1425,40 @@ function(superbuild_package)
14181425 add_dependencies (${executable} -${SB_PACKAGE_VERSION} ${package} )
14191426 set (keyword "" )
14201427 endforeach ()
1421- elseif (DEFINED SB_PACKAGE_DEPENDS )
1428+ elseif (binary_dependencies )
14221429 add_custom_target (${package} )
1423- else ( )
1430+ elseif ( NOT DEFINED SB_PACKAGE_DEPENDS )
14241431 return ()
14251432 endif ()
14261433
1427- # Publish package properties
1428- set_property (TARGET ${package} PROPERTY SB_PACKAGE_FILE ${CMAKE_CURRENT_LIST_FILE} )
1429- foreach (arg ${sb_options} ${sb_one_value_args} ${sb_multi_value_args} )
1430- set_property (TARGET ${package} PROPERTY SB_PACKAGE_${arg} ${SB_PACKAGE_${arg} })
1431- endforeach ()
1432-
1433- # Publish package via global properties
1434- set_property (GLOBAL APPEND PROPERTY SB_PACKAGES ${package} )
1435- string (REPLACE "-" "." version ${SB_PACKAGE_VERSION} )
1436- get_property (default_version GLOBAL PROPERTY SB_DEFAULT_${SB_PACKAGE_NAME} )
1437- string (REPLACE "-" "." default_version "${default_version} " )
1438- if (NOT SB_PACKAGE_NO_DEFAULT
1439- AND (NOT default_version
1440- OR version VERSION_GREATER default_version))
1441- set_property (GLOBAL PROPERTY SB_DEFAULT_${SB_PACKAGE_NAME} ${SB_PACKAGE_VERSION} )
1434+ if (TARGET ${package} )
1435+ # Publish package via global properties
1436+ set (target ${package} )
1437+ set_property (GLOBAL APPEND PROPERTY SB_PACKAGES ${package} )
1438+
1439+ string (REPLACE "-" "." version ${SB_PACKAGE_VERSION} )
1440+ get_property (default_version GLOBAL PROPERTY SB_DEFAULT_${SB_PACKAGE_NAME} )
1441+ string (REPLACE "-" "." default_version "${default_version} " )
1442+ if (NOT SB_PACKAGE_NO_DEFAULT
1443+ AND (NOT default_version
1444+ OR version VERSION_GREATER default_version))
1445+ set_property (GLOBAL PROPERTY SB_DEFAULT_${SB_PACKAGE_NAME} ${SB_PACKAGE_VERSION} )
1446+ endif ()
1447+
1448+ # Publish provided aliases
1449+ foreach (alias ${SB_PACKAGE_PROVIDES} )
1450+ set_property (GLOBAL APPEND PROPERTY SB_ALIASES "${alias} ${package} " )
1451+ endforeach ()
1452+ else ()
1453+ # Publish source package via global properties
1454+ set (target ${package} -source )
1455+ set_property (GLOBAL APPEND PROPERTY SB_SOURCE_PACKAGES ${target} )
14421456 endif ()
14431457
1444- # Publish provided aliases
1445- foreach (alias ${SB_PACKAGE_PROVIDES} )
1446- set_property (GLOBAL APPEND PROPERTY SB_ALIASES "${alias} ${package} " )
1458+ # Publish package properties
1459+ set_property (TARGET ${target} PROPERTY SB_PACKAGE_FILE ${CMAKE_CURRENT_LIST_FILE} )
1460+ foreach (arg ${sb_options} ${sb_one_value_args} ${sb_multi_value_args} )
1461+ set_property (TARGET ${target} PROPERTY SB_PACKAGE_${arg} ${SB_PACKAGE_${arg} })
14471462 endforeach ()
14481463endfunction ()
14491464
0 commit comments