diff options
author | dimdim11 <dimdim11@yandex-team.com> | 2024-08-14 09:30:41 +0300 |
---|---|---|
committer | dimdim11 <dimdim11@yandex-team.com> | 2024-08-14 09:40:46 +0300 |
commit | d27afd6ad62a512f5f1973b11908d9626a11f317 (patch) | |
tree | 553e4deeb4d49f6ee93689f892dc98acfaab3125 | |
parent | 58ef1d58d6f938f241e967ba4c66daf871a21340 (diff) | |
download | ydb-d27afd6ad62a512f5f1973b11908d9626a11f317.tar.gz |
(1of3) Refactor opensource replacement
Refactor opensource replacement
a0c25750dcdcf70f3c41ff614b5b3bcf34b532cf
-rw-r--r-- | build/conf/opensource.conf | 39 | ||||
-rw-r--r-- | build/ymake.core.conf | 32 |
2 files changed, 29 insertions, 42 deletions
diff --git a/build/conf/opensource.conf b/build/conf/opensource.conf index dfdd63c335..852972820d 100644 --- a/build/conf/opensource.conf +++ b/build/conf/opensource.conf @@ -54,21 +54,32 @@ when ($OPENSOURCE == "yes" && $EXPORT_CMAKE == "yes") { EXPORTED_BUILD_SYSTEM_BUILD_ROOT="${PROJECT_BINARY_DIR}" } -CMAKE_PACKAGE= -CMAKE_PACKAGE_COMPONENT= -CMAKE_PACKAGE_TARGET= -CONAN_REFERENCE= -CONAN_PKG_OPTS= -### @usage: OPENSOURCE_EXPORT_REPLACEMENT(CMAKE PkgName CMAKE_TARGET PkgName::PkgTarget CONAN ConanRef CMAKE_COMPONENT OptCmakePkgComponent) -### -### Use specified conan/system pacakcge when exporting cmake build scripts for arcadia C++ project -### for opensource publication. -macro OPENSOURCE_EXPORT_REPLACEMENT(CMAKE[], CMAKE_TARGET[], CMAKE_COMPONENT[], CONAN[], CONAN_OPTIONS[]) { - SET(CMAKE_PACKAGE $CMAKE) - SET(CMAKE_PACKAGE_COMPONENT $CMAKE_COMPONENT) +CMAKE_PACKAGE_SEM= +CONAN_REQUIRES_SEM= +CONAN_OPTIONS_SEM= +CONAN_OS_REQUIRES_SEM= +CONAN_OS_OPTIONS_SEM= +macro _OPENSOURCE_EXPORT_REPLACEMENT_CMAKE(CMAKE[], CMAKE_TARGET[], CMAKE_COMPONENT[]) { + SET(CMAKE_PACKAGE_SEM packages-ITEM && packages-name $CMAKE ${pre= && packages-components :CMAKE_COMPONENT} && mpackages-ITEM && mpackages-name $CMAKE ${pre= && mpackages-components :CMAKE_COMPONENT} && find_package $CMAKE ${pre= COMPONENTS :CMAKE_COMPONENT} ) SET(CMAKE_LINK_TARGET $CMAKE_TARGET) - SET(CONAN_REFERENCE $CONAN) - SET(CONAN_PKG_OPTS $CONAN_OPTIONS) +} + +### @usage: OPENSOURCE_EXPORT_REPLACEMENT(CMAKE PkgName CMAKE_COMPONENT OptCmakePkgComponent CMAKE_TARGET PkgName::PkgTarget CONAN ConanRequire CONAN ConanOptions CONAN_ADDITIONAL_SEMS ConanAdditionalSems) +### +### Use specified conan/system package when exporting cmake build scripts for arcadia C++ project for opensource publication. +macro OPENSOURCE_EXPORT_REPLACEMENT(CMAKE[], CMAKE_TARGET[], CMAKE_COMPONENT[], CONAN[], CONAN_OPTIONS[], CONAN_ADDITIONAL_SEMS[]) { + _OPENSOURCE_EXPORT_REPLACEMENT_CMAKE(CMAKE $CMAKE CMAKE_TARGET $CMAKE_TARGET CMAKE_COMPONENT $CMAKE_COMPONENT) + SET(CONAN_REQUIRES_SEM && conan_require $CONAN && conan-requires $CONAN $CONAN_ADDITIONAL_SEMS) + SET(CONAN_OPTIONS_SEM ${pre=&& conan_options :CONAN_OPTIONS} ${pre=&& conan-options :CONAN_OPTIONS}) +} + +### @usage: OPENSOURCE_EXPORT_REPLACEMENT_BY_OS(OS Os CMAKE PkgName CMAKE_COMPONENT OptCmakePkgComponent CMAKE_TARGET PkgName::PkgTarget CONAN ConanRequire CONAN ConanOptions CONAN_ADDITIONAL_SEMS ConanAdditionalSems) +### +### Use specified conan/system package when exporting cmake build scripts for arcadia C++ project for opensource publication. +macro OPENSOURCE_EXPORT_REPLACEMENT_BY_OS(OS[], CMAKE[], CMAKE_TARGET[], CMAKE_COMPONENT[], CONAN[], CONAN_OPTIONS[], CONAN_ADDITIONAL_SEMS[]) { + _OPENSOURCE_EXPORT_REPLACEMENT_CMAKE(CMAKE $CMAKE CMAKE_TARGET $CMAKE_TARGET CMAKE_COMPONENT $CMAKE_COMPONENT) + SET(CONAN_OS_REQUIRES_SEM && conan-os_depends-ITEM && conan-os_depends-os $OS && conan-os_depends-requires $CONAN $CONAN_ADDITIONAL_SEMS) + SET(CONAN_OS_OPTIONS_SEM && conan-os_depends-ITEM && conan-os_depends-os $OS ${pre=&& conan-os_depends-opts :CONAN_OPTIONS}) } CMAKE_TARGET_NAME=$REALPRJNAME diff --git a/build/ymake.core.conf b/build/ymake.core.conf index 7cba908236..01d2caab9b 100644 --- a/build/ymake.core.conf +++ b/build/ymake.core.conf @@ -1879,8 +1879,6 @@ CPP_OBJ_LIBRARY_SEM=add_global_library_for ${MODDIR} ${suf=.global:CMAKE_TARGET_ CMAKE_FIND_PKG= CMAKE_LINK_TARGET=$REALPRJNAME CMAKE_FIND_PKG_COMP= -CONAN_REQUIRE= -CONAN_OPTS_SEM= ### @usage: LIBRARY() ### @@ -1902,19 +1900,8 @@ module LIBRARY: _LIBRARY { .DEFAULT_NAME_GENERATOR=ThreeDirNames .ARGS_PARSER=Base - when ($CMAKE_PACKAGE_COMPONENT != "") { - CMAKE_FIND_PKG_COMP=COMPONENTS $CMAKE_PACKAGE_COMPONENT && packages-components $CMAKE_PACKAGE_COMPONENT && mpackages-components $CMAKE_PACKAGE_COMPONENT - } - when ($CMAKE_PACKAGE != "") { - CMAKE_FIND_PKG=packages-ITEM && packages-name $CMAKE_PACKAGE && mpackages-ITEM && mpackages-name $CMAKE_PACKAGE && find_package $CMAKE_PACKAGE $CMAKE_FIND_PKG_COMP - CPP_LIBRARY_SEM=$CMAKE_FIND_PKG && ${CPP_LIBRARY_INDUCED_SEM_PROPERTY} PUBLIC $CMAKE_LINK_TARGET && ${CPP_LIBRARY_INDUCED_LINKS} $CMAKE_LINK_TARGET $CONAN_REQUIRE $CONAN_OPTS_SEM && IGNORED - } - when ($CONAN_REFERENCE != "") { - CONAN_REQUIRE=&& conan_require $CONAN_REFERENCE && conan-requires $CONAN_REFERENCE - CPP_LIBRARY_SEM=$CMAKE_FIND_PKG && ${CPP_LIBRARY_INDUCED_SEM_PROPERTY} PUBLIC $CMAKE_LINK_TARGET && ${CPP_LIBRARY_INDUCED_LINKS} $CMAKE_LINK_TARGET $CONAN_REQUIRE $CONAN_OPTS_SEM && IGNORED - } - when ($CONAN_PKG_OPTS != "") { - CONAN_OPTS_SEM=&& conan_options $CONAN_PKG_OPTS && conan-options $CONAN_PKG_OPTS + when ($CMAKE_PACKAGE_SEM != "" || $CONAN_REQUIRES_SEM != "" || $CONAN_OPTS_SEM != "" || $CONAN_OS_REQUIRES_SEM != "" || $CONAN_OS_OPTIONS_SEM != "") { + CPP_LIBRARY_SEM=$CMAKE_PACKAGE_SEM && ${CPP_LIBRARY_INDUCED_SEM_PROPERTY} PUBLIC $CMAKE_LINK_TARGET && ${CPP_LIBRARY_INDUCED_LINKS} $CMAKE_LINK_TARGET $CONAN_REQUIRES_SEM $CONAN_OPTIONS_SEM $CONAN_OS_REQUIRES_SEM $CONAN_OS_OPTIONS_SEM && IGNORED } when ($OPENSOURCE_EXPORT == "no") { CPP_LIBRARY_SEM=IGNORED @@ -1992,19 +1979,8 @@ module RESOURCES_LIBRARY: _BARE_UNIT { SET(MODULE_TAG RESOURCE_LIB) SET(PEERDIR_TAGS RESOURCE_LIB) - when ($CMAKE_PACKAGE_COMPONENT != "") { - CMAKE_FIND_PKG_COMP=COMPONENTS $CMAKE_PACKAGE_COMPONENT && packages-components $CMAKE_PACKAGE_COMPONENT && mpackages-components $CMAKE_PACKAGE_COMPONENT - } - when ($CMAKE_PACKAGE != "") { - CMAKE_FIND_PKG=packages-ITEM && packages-name $CMAKE_PACKAGE && mpackages-ITEM && mpackages-name $CMAKE_PACKAGE && find_package $CMAKE_PACKAGE $CMAKE_FIND_PKG_COMP - RESOURCES_LIBRARY_SEM=$CMAKE_FIND_PKG && ${CPP_LIBRARY_INDUCED_SEM_PROPERTY} PUBLIC $CMAKE_LINK_TARGET && ${CPP_LIBRARY_INDUCED_LINKS} $CMAKE_LINK_TARGET $CONAN_REQUIRE $CONAN_OPTS_SEM && IGNORED - } - when ($CONAN_REFERENCE != "") { - CONAN_REQUIRE=&& conan_require $CONAN_REFERENCE && conan-requires $CONAN_REFERENCE - RESOURCES_LIBRARY_SEM=$CMAKE_FIND_PKG && ${CPP_LIBRARY_INDUCED_SEM_PROPERTY} PUBLIC $CMAKE_LINK_TARGET && ${CPP_LIBRARY_INDUCED_LINKS} $CMAKE_LINK_TARGET $CONAN_REQUIRE $CONAN_OPTS_SEM && IGNORED - } - when ($CONAN_PKG_OPTS != "") { - CONAN_OPTS_SEM=&& conan_options $CONAN_PKG_OPTS && conan-options $CONAN_PKG_OPTS + when ($CMAKE_PACKAGE_SEM != "" || $CONAN_REQUIRES_SEM != "" || $CONAN_OPTS_SEM != "" || $CONAN_OS_REQUIRES_SEM != "" || $CONAN_OS_OPTIONS_SEM != "") { + RESOURCES_LIBRARY_SEM=$CMAKE_PACKAGE_SEM && ${CPP_LIBRARY_INDUCED_SEM_PROPERTY} PUBLIC $CMAKE_LINK_TARGET && ${CPP_LIBRARY_INDUCED_LINKS} $CMAKE_LINK_TARGET $CONAN_REQUIRES_SEM $CONAN_OPTIONS_SEM $CONAN_OS_REQUIRES_SEM $CONAN_OS_OPTIONS_SEM && IGNORED } MODULE_SUFFIX=.pkg.fake |