|
3 | 3 | #@ load("/lib/make.lib.yml", "make") |
4 | 4 | #@ load("/lib/fn_args.lib.yml", "mandatory") |
5 | 5 | #@ load("/lib/assert.lib.yml", "assert") |
| 6 | +#@ load("/lib/create_component.lib.yml", "single_build_component") |
6 | 7 |
|
7 | 8 | #@ load("/components/toolchain/lib/common.lib.yml", "new_gcc_path") |
8 | 9 |
|
9 | 10 |
|
10 | 11 | #@yaml/text-templated-strings |
11 | 12 | --- |
12 | | -#@ def mingw64_build( |
| 13 | +#@ def common_install_script(triple=mandatory): |
| 14 | +- | |
| 15 | + (@= make @) |
| 16 | + (@= make @) install |
| 17 | + rm -f "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/mingw" |
| 18 | + ln -s . "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/mingw" |
| 19 | + rm -f "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/(@= triple @)" |
| 20 | + ln -s . "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/(@= triple @)" |
| 21 | + rm -f "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/sys-include" |
| 22 | + ln -s ./include "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/sys-include" |
| 23 | +#@ end |
| 24 | + |
| 25 | +#@yaml/text-templated-strings |
| 26 | +--- |
| 27 | +#@ def mingw64_flavors( |
| 28 | +#@ toolchain_name=mandatory, |
13 | 29 | #@ triple=mandatory, |
14 | 30 | #@ gcc_version=mandatory, |
15 | 31 | #@ mingw64_version=mandatory, |
16 | 32 | #@ build_type=mandatory, |
17 | | -#@ ): |
18 | | - |
19 | | -#@ assert(build_type in ["headers", "default"]) |
| 33 | +#@ ): |
20 | 34 | #@ source_url = "https://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v" + mingw64_version + ".tar.bz2" |
| 35 | +headers: |
| 36 | + configure: | |
| 37 | + extract.sh --into "$BUILD_DIR" "(@= source_url @)" |
| 38 | + cd "$BUILD_DIR/mingw-w64-headers" |
| 39 | + ./configure \ |
| 40 | + --disable-silent-rules \ |
| 41 | + --target=(@= triple @) \ |
| 42 | + --host=(@= triple @) \ |
| 43 | + --build=x86_64-gentoo-linux-musl \ |
| 44 | + --prefix="$ORCHESTRA_ROOT/(@= triple @)" \ |
| 45 | + --enable-sdk \ |
| 46 | + --enable-secure-api |
| 47 | + install: | |
| 48 | + cd "$BUILD_DIR/mingw-w64-headers" |
| 49 | + (@= common_install_script(triple)[0] @) |
21 | 50 |
|
22 | | -configure: | |
23 | | - extract.sh --into "$BUILD_DIR" "(@= source_url @)" |
24 | | - cd "$BUILD_DIR" |
25 | | - (@ if build_type == "default": @) |
26 | | - NEW_GCC_PATH="(@= new_gcc_path(triple=triple, gcc_version=gcc_version) @)" |
27 | | - NEW_GCC=${NEW_GCC_PATH}/(@= triple @)-gcc |
28 | | - export CC="${NEW_GCC}" |
29 | | - export CPPFLAGS="-I${ORCHESTRA_ROOT}/(@= triple @)/usr/include" |
30 | | - export CHOST="(@= triple @)" |
31 | | - (@ end -@) |
32 | | - "$BUILD_DIR/configure" \ |
33 | | - --disable-silent-rules \ |
34 | | - --target=(@= triple @) \ |
35 | | - --with-sysroot=no \ |
36 | | - --prefix="$ORCHESTRA_ROOT/(@= triple @)/usr" \ |
37 | | - --with-headers \ |
38 | | - --enable-sdk \ |
39 | | - --without-libraries \ |
40 | | - --without-tools \ |
41 | | - (@- if build_type == "default": @) |
42 | | - --with-crt \ |
43 | | - --host=(@= triple @) \ |
44 | | - --disable-idl \ |
45 | | - $($NEW_GCC -E -dM - < /dev/null | grep -q __MINGW64__ && echo --disable-lib32 --enable-lib64 || echo --enable-lib32 --disable-lib64) |
46 | | - (@- elif build_type == "headers": @) |
47 | | - --without-crt \ |
48 | | - --without-idl |
49 | | - (@- end @) |
50 | | -install: | |
51 | | - cd "$BUILD_DIR" |
52 | | - (@= make @) |
53 | | - (@= make @) install |
54 | | - rm -f "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/mingw" |
55 | | - ln -s usr "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/mingw" |
56 | | - rm -f "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/(@= triple @)" |
57 | | - ln -s usr "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/(@= triple @)" |
58 | | - rm -f usr/include "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/sys-include" |
59 | | - ln -s usr/include "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= triple @)/sys-include" |
| 51 | +base: |
| 52 | + configure: | |
| 53 | + extract.sh --into "$BUILD_DIR" "(@= source_url @)" |
| 54 | + cd "$BUILD_DIR" |
| 55 | + NEW_GCC_PATH="(@= new_gcc_path(triple=triple, gcc_version=gcc_version) @)" |
| 56 | + NEW_GCC=${NEW_GCC_PATH}/(@= triple @)-gcc |
| 57 | + export CC="${NEW_GCC}" |
| 58 | + export CPPFLAGS="-I${ORCHESTRA_ROOT}/(@= triple @)/include" |
| 59 | + export CHOST="(@= triple @)" |
60 | 60 |
|
61 | | -#@ if/end build_type == "default": |
62 | | -dependencies: |
63 | | - - toolchain/win64/gcc~stage1 |
64 | | - - toolchain/win64/mingw64~headers |
| 61 | + ./configure \ |
| 62 | + --disable-silent-rules \ |
| 63 | + --target=(@= triple @) \ |
| 64 | + --host=(@= triple @) \ |
| 65 | + --build=x86_64-gentoo-linux-musl \ |
| 66 | + --prefix="$ORCHESTRA_ROOT/(@= triple @)" \ |
| 67 | + --enable-sdk \ |
| 68 | + --enable-secure-api \ |
| 69 | + --with-sysroot=no \ |
| 70 | + --with-headers \ |
| 71 | + --with-crt \ |
| 72 | + --without-libraries \ |
| 73 | + $($NEW_GCC -E -dM - < /dev/null | grep -q __MINGW64__ && echo --disable-lib32 --enable-lib64 || echo --enable-lib32 --disable-lib64) |
| 74 | + install: | |
| 75 | + cd "$BUILD_DIR" |
| 76 | + (@= common_install_script(triple)[0] @) |
| 77 | + # Remove files already installed by mingw64-headers |
| 78 | + remove-files-from-other-component.sh "toolchain/(@= toolchain_name @)/mingw64-headers" "${TMP_ROOT}${ORCHESTRA_ROOT}" |
| 79 | + dependencies: |
| 80 | + - toolchain/(@= toolchain_name @)/gcc~stage1 |
| 81 | + - toolchain/(@= toolchain_name @)/mingw64-headers |
65 | 82 |
|
| 83 | +extra-libraries: |
| 84 | + configure: | |
| 85 | + extract.sh --into "$BUILD_DIR" "(@= source_url @)" |
| 86 | + cd "$BUILD_DIR" |
| 87 | + NEW_GCC_PATH="(@= new_gcc_path(triple=triple, gcc_version=gcc_version) @)" |
| 88 | + NEW_GCC=${NEW_GCC_PATH}/(@= triple @)-gcc |
| 89 | + export CC="${NEW_GCC}" |
| 90 | + export CPPFLAGS="-I${ORCHESTRA_ROOT}/(@= triple @)/include" |
| 91 | + export CHOST="(@= triple @)" |
| 92 | +
|
| 93 | + ./configure \ |
| 94 | + --disable-silent-rules \ |
| 95 | + --target=(@= triple @) \ |
| 96 | + --host=(@= triple @) \ |
| 97 | + --build=x86_64-gentoo-linux-musl \ |
| 98 | + --prefix="$ORCHESTRA_ROOT/(@= triple @)" \ |
| 99 | + --enable-sdk \ |
| 100 | + --enable-secure-api \ |
| 101 | + --with-sysroot=no \ |
| 102 | + --with-headers \ |
| 103 | + --with-crt \ |
| 104 | + --with-libraries=winpthreads \ |
| 105 | + $($NEW_GCC -E -dM - < /dev/null | grep -q __MINGW64__ && echo --disable-lib32 --enable-lib64 || echo --enable-lib32 --disable-lib64) |
| 106 | + install: | |
| 107 | + cd "$BUILD_DIR" |
| 108 | + (@= common_install_script(triple)[0] @) |
| 109 | +
|
| 110 | + mkdir -p "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= toolchain_name @)/bin/" |
| 111 | + ln -s ../../(@= triple @)/usr/bin/libwinpthread-1.dll "${TMP_ROOT}${ORCHESTRA_ROOT}/(@= toolchain_name @)/bin/" |
| 112 | +
|
| 113 | + # Remove files already installed by mingw64-headers and mingw64-base |
| 114 | + remove-files-from-other-component.sh "toolchain/(@= toolchain_name @)/mingw64-headers" "${TMP_ROOT}${ORCHESTRA_ROOT}" |
| 115 | + remove-files-from-other-component.sh "toolchain/(@= toolchain_name @)/mingw64-base" "${TMP_ROOT}${ORCHESTRA_ROOT}" |
| 116 | + dependencies: |
| 117 | + - toolchain/(@= toolchain_name @)/gcc~stage1 |
| 118 | + - toolchain/(@= toolchain_name @)/mingw64-base |
66 | 119 | #@ end |
67 | 120 |
|
68 | 121 | #@yaml/text-templated-strings |
69 | 122 | --- |
70 | | -#@ def create_mingw64_component(toolchain_name=mandatory, **kwargs): |
71 | | -license: COPYING |
72 | | -default_build: default |
73 | | -builds: |
74 | | - headers: #@ mingw64_build(build_type="headers", **kwargs) |
75 | | - default: #@ mingw64_build(build_type="default", **kwargs) |
| 123 | +#@ def create_mingw64_components(toolchain_name=mandatory, **kwargs): |
| 124 | +#@ for type, options in dict(mingw64_flavors(toolchain_name=toolchain_name, **kwargs)).items(): |
| 125 | +(@= "toolchain/" + toolchain_name + "/mingw64-" + type @): #@ single_build_component(license="COPYING", **options) |
| 126 | +#@ end |
76 | 127 | #@ end |
0 commit comments