summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/cmake/cmake/cmake-setup.py
blob: af587a44cc819133df9ba567857e47c7356f5dbb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env python3

import os
import string
import sys

class Template(string.Template):
    delimiter = "@"

class Environ():
    def __getitem__(self, name):
        if name == "OECORE_SDK_SYS":
            return  os.path.basename(os.environ["OECORE_NATIVE_SYSROOT"])
        elif name == "OECORE_TARGET_SYS":
            return  os.path.basename(os.environ["OECORE_TARGET_SYSROOT"])
        elif name == "OECORE_TARGET_ALIAS":
            return  os.path.basename(os.environ["TARGET_PREFIX"].strip("-"))
        else:
            return  os.environ[name]

try:
    sysroot = os.environ['OECORE_NATIVE_SYSROOT']
except KeyError:
    print("Not in environment setup, bailing")
    sys.exit(1)

template_file = os.path.join(sysroot, 'usr/share/cmake/SDKToolchainConfig.cmake.template')
cross_file = os.path.join(sysroot, 'usr/share/cmake/%s-toolchain.cmake' % (os.path.basename(os.environ["OECORE_TARGET_SYSROOT"])))
with open(template_file) as in_file:
    template = in_file.read()
    output = Template(template).substitute(Environ())
    with open(cross_file, "w") as out_file:
        out_file.write(output)