-
Notifications
You must be signed in to change notification settings - Fork 116
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
meta-balena-rust: use an updated version of cmake
This is to build the latest versions of rust components such as os-config. Change-type: patch
- Loading branch information
jaomaloy
committed
Jun 25, 2024
1 parent
a6cd1a4
commit 20affe7
Showing
79 changed files
with
1,369 additions
and
2,200 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
# Path to the CMake file to process. | ||
OECMAKE_SOURCEPATH ??= "${S}" | ||
|
||
DEPENDS_prepend = "cmake-native " | ||
B = "${WORKDIR}/build" | ||
|
||
# What CMake generator to use. | ||
# The supported options are "Unix Makefiles" or "Ninja". | ||
OECMAKE_GENERATOR ?= "Ninja" | ||
|
||
python() { | ||
generator = d.getVar("OECMAKE_GENERATOR") | ||
if generator == "Unix Makefiles": | ||
args = "-G 'Unix Makefiles' -DCMAKE_MAKE_PROGRAM=" + d.getVar("MAKE") | ||
d.setVar("OECMAKE_GENERATOR_ARGS", args) | ||
d.setVarFlag("do_compile", "progress", "percent") | ||
elif generator == "Ninja": | ||
d.appendVar("DEPENDS", " ninja-native") | ||
d.setVar("OECMAKE_GENERATOR_ARGS", "-G Ninja -DCMAKE_MAKE_PROGRAM=ninja") | ||
d.setVarFlag("do_compile", "progress", r"outof:^\[(\d+)/(\d+)\]\s+") | ||
else: | ||
bb.fatal("Unknown CMake Generator %s" % generator) | ||
|
||
# C/C++ Compiler (without cpu arch/tune arguments) | ||
if not d.getVar('OECMAKE_C_COMPILER'): | ||
cc_list = d.getVar('CC').split() | ||
if cc_list[0] == 'ccache': | ||
d.setVar('OECMAKE_C_COMPILER', '%s %s' % (cc_list[0], cc_list[1])) | ||
else: | ||
d.setVar('OECMAKE_C_COMPILER', cc_list[0]) | ||
|
||
if not d.getVar('OECMAKE_CXX_COMPILER'): | ||
cxx_list = d.getVar('CXX').split() | ||
if cxx_list[0] == 'ccache': | ||
d.setVar('OECMAKE_CXX_COMPILER', '%s %s' % (cxx_list[0], cxx_list[1])) | ||
else: | ||
d.setVar('OECMAKE_CXX_COMPILER', cxx_list[0]) | ||
} | ||
OECMAKE_AR ?= "${AR}" | ||
|
||
# Compiler flags | ||
OECMAKE_C_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CFLAGS}" | ||
OECMAKE_CXX_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CXXFLAGS}" | ||
OECMAKE_C_FLAGS_RELEASE ?= "-DNDEBUG" | ||
OECMAKE_CXX_FLAGS_RELEASE ?= "-DNDEBUG" | ||
OECMAKE_C_LINK_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CPPFLAGS} ${LDFLAGS}" | ||
OECMAKE_CXX_LINK_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CXXFLAGS} ${LDFLAGS}" | ||
CXXFLAGS += "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS}" | ||
CFLAGS += "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS}" | ||
|
||
OECMAKE_RPATH ?= "" | ||
OECMAKE_PERLNATIVE_DIR ??= "" | ||
OECMAKE_EXTRA_ROOT_PATH ?= "" | ||
|
||
OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "ONLY" | ||
OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM_class-native = "BOTH" | ||
|
||
EXTRA_OECMAKE_append = " ${PACKAGECONFIG_CONFARGS}" | ||
|
||
EXTRA_OECMAKE_BUILD_prepend_task-compile = "${PARALLEL_MAKE} " | ||
EXTRA_OECMAKE_BUILD_prepend_task-install = "${PARALLEL_MAKEINST} " | ||
|
||
OECMAKE_TARGET_COMPILE ?= "all" | ||
OECMAKE_TARGET_INSTALL ?= "install" | ||
|
||
# CMake expects target architectures in the format of uname(2), | ||
# which do not always match TARGET_ARCH, so all the necessary | ||
# conversions should happen here. | ||
def map_target_arch_to_uname_arch(target_arch): | ||
if target_arch == "powerpc": | ||
return "ppc" | ||
if target_arch == "powerpc64": | ||
return "ppc64" | ||
return target_arch | ||
|
||
cmake_do_generate_toolchain_file() { | ||
if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then | ||
cmake_crosscompiling="set( CMAKE_CROSSCOMPILING FALSE )" | ||
fi | ||
cat > ${WORKDIR}/toolchain.cmake <<EOF | ||
# CMake system name must be something like "Linux". | ||
# This is important for cross-compiling. | ||
$cmake_crosscompiling | ||
set( CMAKE_SYSTEM_NAME `echo ${TARGET_OS} | sed -e 's/^./\u&/' -e 's/^\(Linux\).*/\1/'` ) | ||
set( CMAKE_SYSTEM_PROCESSOR ${@map_target_arch_to_uname_arch(d.getVar('TARGET_ARCH'))} ) | ||
set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} ) | ||
set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} ) | ||
set( CMAKE_ASM_COMPILER ${OECMAKE_C_COMPILER} ) | ||
set( CMAKE_AR ${OECMAKE_AR} CACHE FILEPATH "Archiver" ) | ||
set( CMAKE_C_FLAGS "${OECMAKE_C_FLAGS}" CACHE STRING "CFLAGS" ) | ||
set( CMAKE_CXX_FLAGS "${OECMAKE_CXX_FLAGS}" CACHE STRING "CXXFLAGS" ) | ||
set( CMAKE_ASM_FLAGS "${OECMAKE_C_FLAGS}" CACHE STRING "ASM FLAGS" ) | ||
set( CMAKE_C_FLAGS_RELEASE "${OECMAKE_C_FLAGS_RELEASE}" CACHE STRING "Additional CFLAGS for release" ) | ||
set( CMAKE_CXX_FLAGS_RELEASE "${OECMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "Additional CXXFLAGS for release" ) | ||
set( CMAKE_ASM_FLAGS_RELEASE "${OECMAKE_C_FLAGS_RELEASE}" CACHE STRING "Additional ASM FLAGS for release" ) | ||
set( CMAKE_C_LINK_FLAGS "${OECMAKE_C_LINK_FLAGS}" CACHE STRING "LDFLAGS" ) | ||
set( CMAKE_CXX_LINK_FLAGS "${OECMAKE_CXX_LINK_FLAGS}" CACHE STRING "LDFLAGS" ) | ||
|
||
# only search in the paths provided so cmake doesnt pick | ||
# up libraries and tools from the native build machine | ||
set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN}) | ||
set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY ) | ||
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM} ) | ||
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) | ||
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) | ||
|
||
# Use qt.conf settings | ||
set( ENV{QT_CONF_PATH} ${WORKDIR}/qt.conf ) | ||
|
||
# We need to set the rpath to the correct directory as cmake does not provide any | ||
# directory as rpath by default | ||
set( CMAKE_INSTALL_RPATH ${OECMAKE_RPATH} ) | ||
|
||
# Use native cmake modules | ||
list(APPEND CMAKE_MODULE_PATH "${STAGING_DATADIR}/cmake/Modules/") | ||
|
||
# add for non /usr/lib libdir, e.g. /usr/lib64 | ||
set( CMAKE_LIBRARY_PATH ${libdir} ${base_libdir}) | ||
|
||
# add include dir to implicit includes in case it differs from /usr/include | ||
list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES ${includedir}) | ||
list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES ${includedir}) | ||
|
||
EOF | ||
} | ||
|
||
addtask generate_toolchain_file after do_patch before do_configure | ||
|
||
CONFIGURE_FILES = "CMakeLists.txt" | ||
|
||
cmake_do_configure() { | ||
if [ "${OECMAKE_BUILDPATH}" ]; then | ||
bbnote "cmake.bbclass no longer uses OECMAKE_BUILDPATH. The default behaviour is now out-of-tree builds with B=WORKDIR/build." | ||
fi | ||
|
||
if [ "${S}" != "${B}" ]; then | ||
rm -rf ${B} | ||
mkdir -p ${B} | ||
cd ${B} | ||
else | ||
find ${B} -name CMakeFiles -or -name Makefile -or -name cmake_install.cmake -or -name CMakeCache.txt -delete | ||
fi | ||
|
||
# Just like autotools cmake can use a site file to cache result that need generated binaries to run | ||
if [ -e ${WORKDIR}/site-file.cmake ] ; then | ||
oecmake_sitefile="-C ${WORKDIR}/site-file.cmake" | ||
else | ||
oecmake_sitefile= | ||
fi | ||
|
||
cmake \ | ||
${OECMAKE_GENERATOR_ARGS} \ | ||
$oecmake_sitefile \ | ||
${OECMAKE_SOURCEPATH} \ | ||
-DCMAKE_INSTALL_PREFIX:PATH=${prefix} \ | ||
-DCMAKE_INSTALL_BINDIR:PATH=${@os.path.relpath(d.getVar('bindir'), d.getVar('prefix'))} \ | ||
-DCMAKE_INSTALL_SBINDIR:PATH=${@os.path.relpath(d.getVar('sbindir'), d.getVar('prefix'))} \ | ||
-DCMAKE_INSTALL_LIBEXECDIR:PATH=${@os.path.relpath(d.getVar('libexecdir'), d.getVar('prefix'))} \ | ||
-DCMAKE_INSTALL_SYSCONFDIR:PATH=${sysconfdir} \ | ||
-DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=${@os.path.relpath(d.getVar('sharedstatedir'), d. getVar('prefix'))} \ | ||
-DCMAKE_INSTALL_LOCALSTATEDIR:PATH=${localstatedir} \ | ||
-DCMAKE_INSTALL_LIBDIR:PATH=${@os.path.relpath(d.getVar('libdir'), d.getVar('prefix'))} \ | ||
-DCMAKE_INSTALL_INCLUDEDIR:PATH=${@os.path.relpath(d.getVar('includedir'), d.getVar('prefix'))} \ | ||
-DCMAKE_INSTALL_DATAROOTDIR:PATH=${@os.path.relpath(d.getVar('datadir'), d.getVar('prefix'))} \ | ||
-DCMAKE_INSTALL_SO_NO_EXE=0 \ | ||
-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake \ | ||
-DCMAKE_VERBOSE_MAKEFILE=1 \ | ||
-DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 \ | ||
${EXTRA_OECMAKE} \ | ||
-Wno-dev | ||
} | ||
|
||
cmake_runcmake_build() { | ||
bbnote ${DESTDIR:+DESTDIR=${DESTDIR} }VERBOSE=1 cmake --build '${B}' "$@" -- ${EXTRA_OECMAKE_BUILD} | ||
eval ${DESTDIR:+DESTDIR=${DESTDIR} }VERBOSE=1 cmake --build '${B}' "$@" -- ${EXTRA_OECMAKE_BUILD} | ||
} | ||
|
||
cmake_do_compile() { | ||
cmake_runcmake_build --target ${OECMAKE_TARGET_COMPILE} | ||
} | ||
|
||
cmake_do_install() { | ||
DESTDIR='${D}' cmake_runcmake_build --target ${OECMAKE_TARGET_INSTALL} | ||
} | ||
|
||
EXPORT_FUNCTIONS do_configure do_compile do_install do_generate_toolchain_file |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved | ||
# Released under the MIT license (see packages/COPYING) | ||
|
||
SUMMARY = "Cross-platform, open-source make system" | ||
DESCRIPTION = "CMake is used to control the software compilation process \ | ||
using simple platform and compiler independent configuration files. CMake \ | ||
generates native makefiles and workspaces that can be used in the compiler \ | ||
environment of your choice." | ||
HOMEPAGE = "http://www.cmake.org/" | ||
BUGTRACKER = "http://public.kitware.com/Bug/my_view_page.php" | ||
SECTION = "console/utils" | ||
LICENSE = "BSD-3-Clause" | ||
LIC_FILES_CHKSUM = "file://Copyright.txt;md5=718f05155941b33862726348d3cd46ce \ | ||
file://Source/cmake.h;beginline=1;endline=2;md5=a5f70e1fef8614734eae0d62b4f5891b \ | ||
" | ||
|
||
CMAKE_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}" | ||
|
||
SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \ | ||
" | ||
|
||
SRC_URI[sha256sum] = "252aee1448d49caa04954fd5e27d189dd51570557313e7b281636716a238bccb" | ||
|
||
UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar" | ||
|
||
CVE_STATUS[CVE-2016-10642] = "cpe-incorrect: This is specific to the npm package that installs cmake, so isn't relevant to OpenEmbedded" |
32 changes: 32 additions & 0 deletions
32
meta-balena-rust/recipes-devtools/cmake/cmake/0001-CMakeLists.txt-disable-USE_NGHTTP2.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
From 946011cbfd686fe6bd2cec94494f6b0c4394bb6c Mon Sep 17 00:00:00 2001 | ||
From: Changqing Li <[email protected]> | ||
Date: Wed, 28 Dec 2022 17:51:27 +0800 | ||
Subject: [PATCH] CMakeLists.txt: disable USE_NGHTTP2 | ||
|
||
nghttp2 depends on cmake-native to build, to break circular | ||
dependency, disable nghttp2. | ||
|
||
Upstream-Status: Inappropriate [oe specific] | ||
|
||
Signed-off-by: Changqing Li <[email protected]> | ||
|
||
Adjust the patch to apply on top of v3.28.3. | ||
|
||
Signed-off-by: Trevor Gamblin <[email protected]> | ||
--- | ||
Utilities/cmcurl/CMakeLists.txt | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
diff --git a/Utilities/cmcurl/CMakeLists.txt b/Utilities/cmcurl/CMakeLists.txt | ||
index 3dd24f1e..4a0f6773 100644 | ||
--- a/Utilities/cmcurl/CMakeLists.txt | ||
+++ b/Utilities/cmcurl/CMakeLists.txt | ||
@@ -91,7 +91,7 @@ set(HTTP_ONLY OFF CACHE INTERNAL "Curl is not http-only") | ||
set(PICKY_COMPILER OFF CACHE INTERNAL "Enable picky compiler options") | ||
set(SHARE_LIB_OBJECT OFF) | ||
set(USE_LIBIDN2 ON) | ||
-set(USE_NGHTTP2 ON) | ||
+set(USE_NGHTTP2 OFF) | ||
set(USE_NGTCP2 OFF) | ||
set(USE_QUICHE OFF) | ||
set(USE_WIN32_IDN OFF) |
38 changes: 38 additions & 0 deletions
38
...ipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
From 2d3f6933f78d393514a48f8222ac8c3c39cb5fc7 Mon Sep 17 00:00:00 2001 | ||
From: Otavio Salvador <[email protected]> | ||
Date: Thu, 5 Jul 2018 10:28:04 -0300 | ||
Subject: [PATCH] Disable use of ext2fs/ext2_fs.h by cmake's internal | ||
|
||
libarchive copy | ||
Organization: O.S. Systems Software LTDA. | ||
|
||
We don't want to add a dependency on e2fsprogs-native for cmake-native, | ||
and we don't use CPack so just disable this functionality. | ||
|
||
Upstream-Status: Inappropriate [config] | ||
|
||
Signed-off-by: Paul Eggleton <[email protected]> | ||
Signed-off-by: Otavio Salvador <[email protected]> | ||
--- | ||
Utilities/cmlibarchive/CMakeLists.txt | 8 ++------ | ||
1 file changed, 2 insertions(+), 6 deletions(-) | ||
|
||
diff --git a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMakeLists.txt | ||
index e47184b7..e4964c32 100644 | ||
--- a/Utilities/cmlibarchive/CMakeLists.txt | ||
+++ b/Utilities/cmlibarchive/CMakeLists.txt | ||
@@ -721,12 +721,8 @@ LA_CHECK_INCLUDE_FILE("copyfile.h" HAVE_COPYFILE_H) | ||
LA_CHECK_INCLUDE_FILE("direct.h" HAVE_DIRECT_H) | ||
LA_CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H) | ||
LA_CHECK_INCLUDE_FILE("errno.h" HAVE_ERRNO_H) | ||
-LA_CHECK_INCLUDE_FILE("ext2fs/ext2_fs.h" HAVE_EXT2FS_EXT2_FS_H) | ||
- | ||
-CHECK_C_SOURCE_COMPILES("#include <sys/ioctl.h> | ||
-#include <ext2fs/ext2_fs.h> | ||
-int main(void) { return EXT2_IOC_GETFLAGS; }" HAVE_WORKING_EXT2_IOC_GETFLAGS) | ||
- | ||
+SET(HAVE_EXT2FS_EXT2_FS_H 0) | ||
+SET(HAVE_WORKING_EXT2_IOC_GETFLAGS 0) | ||
LA_CHECK_INCLUDE_FILE("fcntl.h" HAVE_FCNTL_H) | ||
LA_CHECK_INCLUDE_FILE("fnmatch.h" HAVE_FNMATCH_H) | ||
LA_CHECK_INCLUDE_FILE("grp.h" HAVE_GRP_H) |
23 changes: 23 additions & 0 deletions
23
meta-balena-rust/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
set( CMAKE_SYSTEM_NAME Linux ) | ||
set( CMAKE_C_FLAGS $ENV{CFLAGS} CACHE STRING "" FORCE ) | ||
set( CMAKE_CXX_FLAGS $ENV{CXXFLAGS} CACHE STRING "" FORCE ) | ||
set( CMAKE_SYSROOT $ENV{OECORE_TARGET_SYSROOT} ) | ||
|
||
set( CMAKE_FIND_ROOT_PATH $ENV{OECORE_TARGET_SYSROOT} ) | ||
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) | ||
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) | ||
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) | ||
set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY ) | ||
|
||
set(CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX "$ENV{OE_CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX}") | ||
|
||
set( CMAKE_SYSTEM_PROCESSOR $ENV{OECORE_TARGET_ARCH} ) | ||
|
||
# Include the toolchain configuration subscripts | ||
file( GLOB toolchain_config_files "${CMAKE_CURRENT_LIST_FILE}.d/*.cmake" ) | ||
foreach(config ${toolchain_config_files}) | ||
include(${config}) | ||
endforeach() | ||
|
||
unset(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES) | ||
unset(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES) |
31 changes: 31 additions & 0 deletions
31
meta-balena-rust/recipes-devtools/cmake/cmake/SDKToolchainConfig.cmake.template
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
set(SDK_INSTALL_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../../..") | ||
set(HOST_SYSROOT "${SDK_INSTALL_DIR}/sysroots/@OECORE_SDK_SYS") | ||
set(TARGET_SYSROOT "${SDK_INSTALL_DIR}/sysroots/@OECORE_TARGET_SYS") | ||
set(HOST_BIN "${HOST_SYSROOT}/usr/bin") | ||
set(TOOLCHAIN_NAME "@OECORE_TARGET_ALIAS") | ||
set(GCC_DIR "${HOST_BIN}/${TOOLCHAIN_NAME}") | ||
|
||
set(CMAKE_SYSTEM_NAME Linux) | ||
set(CMAKE_SYSTEM_PROCESSOR "@OECORE_TARGET_ARCH") | ||
|
||
set(CMAKE_C_COMPILER "${GCC_DIR}/${TOOLCHAIN_NAME}-gcc") | ||
set(CMAKE_CXX_COMPILER "${GCC_DIR}/${TOOLCHAIN_NAME}-g++") | ||
|
||
set(ARCH_FLAGS "@OECORE_TUNE_CCARGS") | ||
set(CMAKE_C_FLAGS "${ARCH_FLAGS}" CACHE STRING "" FORCE ) | ||
set(CMAKE_CXX_FLAGS "${ARCH_FLAGS}" CACHE STRING "" FORCE ) | ||
set(CMAKE_ASM_FLAGS ${CMAKE_C_FLAGS} CACHE STRING "" FORCE ) | ||
set(CMAKE_LDFLAGS_FLAGS ${CMAKE_C_FLAGS} CACHE STRING "" FORCE ) | ||
|
||
set(CMAKE_SYSROOT "${TARGET_SYSROOT}") | ||
|
||
set(CMAKE_FIND_ROOT_PATH "${TARGET_SYSROOT}" ) | ||
|
||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) | ||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) | ||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) | ||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY ) | ||
|
||
set(CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX "") | ||
|
||
set(CMAKE_PROGRAM_PATH "${HOST_SYSROOT}/usr/bin" CACHE STRING "" FORCE) |
33 changes: 33 additions & 0 deletions
33
meta-balena-rust/recipes-devtools/cmake/cmake/cmake-setup.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,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) |
2 changes: 2 additions & 0 deletions
2
meta-balena-rust/recipes-devtools/cmake/cmake/environment.d-cmake.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
export CMAKE_TOOLCHAIN_FILE="$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake" | ||
export OE_CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX="`echo $OECORE_BASELIB | sed -e s/lib//`" |
Oops, something went wrong.