early-access version 3088

This commit is contained in:
pineappleEA
2022-11-05 15:35:56 +01:00
parent 4e4fc25ce3
commit b601909c6d
35519 changed files with 5996896 additions and 860 deletions

View File

@@ -0,0 +1,4 @@
Name: debugged
Version: 0.1
Description: A package with separate debug version (debug version)
Cflags: -DVARIANT=\"DEBUG\"

View File

@@ -0,0 +1,104 @@
#|
Copyright 2019 Dmitry Arkhipov
Distributed under the Boost Software License, Version 1.0. (See
accompanying file LICENSE.txt or copy at
https://www.bfgroup.xyz/b2/LICENSE.txt)
|#
using pkg-config : : : <libdir>packages ;
using pkg-config : debug : : <libdir>packages <path>debug-packages ;
import common ;
import pkg-config ;
import property-set ;
import testing ;
import version ;
project : requirements <variant>debug:<pkg-config>debug ;
pkg-config.import debugged ;
pkg-config.import foobar : requirements <version>>=0.3 ;
pkg-config.import mangled : requirements <conditional>@mangle-name ;
versioned =
[ pkg-config.import versioned
: usage-requirements <conditional>@versioned-api
] ;
with-var =
[ pkg-config.import with-var
: usage-requirements <conditional>@var-to-define
] ;
# test if a package is found at all
run test1.cpp foobar ;
# test if conditional requirement is applied
run test2.cpp mangled
: target-name test2-1
: requirements <threading>single
: args SINGLE
;
run test2.cpp mangled
: target-name test2-2
: requirements <threading>multi
: args MULTI
;
# test if pkg-config configuration is properly inferred from property set
run test3.cpp debugged
: target-name test3-1
: requirements <variant>release
: args RELEASE
;
run test3.cpp debugged
: target-name test3-2
: requirements <variant>debug
: args DEBUG
;
# test use of version method of pkg-config targets
run test4.cpp versioned ;
# test use of variable method of pkg-config targets
run test5.cpp with-var ;
rule mangle-name ( props * ) {
import feature ;
local name =
[ common.format-name
<base> <threading>
: mangled
: ""
: [ property-set.create $(props) ]
] ;
return <name>$(name) ;
}
rule versioned-api ( props * ) {
local ps = [ property-set.create $(props) ] ;
local version = [ $(versioned).version $(ps) ] ;
if [ version.version-less $(version) : 2 ]
{
return <define>VERSIONED_API=1 ;
}
else
{
return <define>VERSIONED_API=2 ;
}
}
rule var-to-define ( props * ) {
local ps = [ property-set.create $(props) ] ;
local qwerty = [ $(with-var).variable qwerty : $(ps) ] ;
return <define>QWERTY=\\\"$(qwerty)\\\" ;
}

View File

@@ -0,0 +1,4 @@
Name: debugged
Version: 0.1
Description: A package with separate debug version (release version)
Cflags: -DVARIANT=\"RELEASE\"

View File

@@ -0,0 +1,4 @@
Name: foobar
Version: 0.3
Description: The bar for your foo
Cflags: -DQWERTY=\"uiop\"

View File

@@ -0,0 +1,4 @@
Name: mangled
Version: 0.1
Description: A package with mangled name (multi-threaded version)
Cflags: -DTHREADING=\"MULTI\"

View File

@@ -0,0 +1,4 @@
Name: mangled
Version: 0.1
Description: A package with mangled name (single-threaded version)
Cflags: -DTHREADING=\"SINGLE\"

View File

@@ -0,0 +1,3 @@
Name: versioned
Version: 4.2
Description: A package with versioned API

View File

@@ -0,0 +1,4 @@
qwerty=UIOP
Name: with-var
Version: 0.1
Description: A package that defines a custom variable

View File

@@ -0,0 +1,11 @@
// Copyright 2019 Dmitry Arkhipov
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE.txt or copy at
// https://www.bfgroup.xyz/b2/LICENSE.txt)
#include <string>
int main() {
return QWERTY == std::string("uiop") ? EXIT_SUCCESS : EXIT_FAILURE ;
}

View File

@@ -0,0 +1,12 @@
// Copyright 2019 Dmitry Arkhipov
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE.txt or copy at
// https://www.bfgroup.xyz/b2/LICENSE.txt)
#include <string>
#include <iostream>
int main(int, char const** argv) {
return THREADING == std::string(argv[1]) ? EXIT_SUCCESS : EXIT_FAILURE;
}

View File

@@ -0,0 +1,12 @@
// Copyright 2019 Dmitry Arkhipov
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE.txt or copy at
// https://www.bfgroup.xyz/b2/LICENSE.txt)
#include <string>
#include <iostream>
int main(int, char const** argv) {
return VARIANT == std::string(argv[1]) ? EXIT_SUCCESS : EXIT_FAILURE;
}

View File

@@ -0,0 +1,11 @@
// Copyright 2019 Dmitry Arkhipov
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE.txt or copy at
// https://www.bfgroup.xyz/b2/LICENSE.txt)
#if VERSIONED_API < 2
# error "API is too old"
#endif
int main() {}

View File

@@ -0,0 +1,12 @@
// Copyright 2019 Dmitry Arkhipov
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE.txt or copy at
// https://www.bfgroup.xyz/b2/LICENSE.txt)
#include <string>
#include <iostream>
int main(int, char const** argv) {
return QWERTY == std::string("UIOP") ? EXIT_SUCCESS : EXIT_FAILURE;
}