Skip to content

Commit 4e815d2

Browse files
author
Jason Mobarak
authored
Add toolchainfile.cmake for buildroot, try building both ARCHs again (#3)
* Add support for building both archs again * Removing separated archs for now * Add a toolchain file for cmake
1 parent b11bcc7 commit 4e815d2

File tree

4 files changed

+78
-19
lines changed

4 files changed

+78
-19
lines changed

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,4 @@ env:
4444
# DOCKER_PASS
4545
- secure: "qEmUT+mBsHjLkrBYMZWiLl8+ZXq9UAv+DyMDww+N74hPtGiZxMqLuVIFq94qR/WhiI9zd7k+tjhy6TcgD8rpKoQnQSGXcotFGq6typ3UWEV0ekt40IMV5nBqopqGGIBVIHNfXjq0OTeYTF2eGncpNnznJHAQi8Dvj7vD99y5GA5RoZGSdsiqTyxBGMvZ0cE0QApkb1MH3lBVRzBuh6dotpa1RBlGR+i2xbcH3nAqy5RB38wZgMedAPnlUfg+uB+IQiF8+hbuSmHzADiabNLBkkB/UCOz59k/JkaeN+2gnyP6/so+SpOe1BKfpxKBcN74O4n056ZLDBRjTod2YSc49dKqxhZhQijwNJfFi3Tt5iNrFYdU3KPeqqfNLoQKmbBTKjGXbxHHXm3lnUuCTZH0Yd9QGKSAwn5kxDRy6DuyNMUGwFtu8YxzirwTJiQR6ayodMCMWjZCXuxUc0I5I2Y64CsofRWkuMbznjE4wJwptVPzTwIxkZnMt+aWVoQTXBtZVpiHf4CTJb65dyLDXeMOwhYnKzwLUrvvHHpOm7GygvAbbeDAzHumTDvt7s5nl2VwHNLmTK3TizvvpQCucIjG8M8dEd7iu4VRZh/rxGxV9MJ2qUNETa6hnfX+Z2xaLTcgYAG5z7p60sThPfFfYLopdJL1dO5eA/EncPzuQuh087w="
4646
matrix:
47-
- ARCH=x86
48-
- ARCH=arm
47+
- ARCH=x86,arm

build.bash

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,16 @@ NO_TTY=
2222

2323
while [[ $# -gt 0 ]]; do
2424
case $1 in
25-
--verbose)
26-
VERBOSE="-v"
27-
shift
28-
;;
29-
--arch=x86)
30-
ARCH="X86"
31-
shift
32-
;;
33-
--arch=arm)
34-
ARCH="ARM"
35-
shift
36-
;;
37-
--no-tty)
38-
NO_TTY=--no-tty
39-
shift
40-
;;
41-
*) shift ;;
25+
26+
--arch=x86) ARCH="X86"; shift ;;
27+
--arch=arm) ARCH="ARM"; shift ;;
28+
--arch=arm,x86) ARCH="ARM\\;X86"; shift ;;
29+
--arch=x86,arm) ARCH="X86\\;ARM"; shift ;;
30+
31+
--verbose) VERBOSE="-v"; shift ;;
32+
--no-tty) NO_TTY=--no-tty; shift ;;
33+
34+
*) shift ;;
4235
esac
4336
done
4437

stage_sysroot.bash

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ stage_sysroot() {
8484
cp -v "$BINTOOL" "${OUT}/usr/bin/"
8585
done
8686

87+
mkdir -p "${OUT}/buildroot"
88+
cp -v /this_dir/toolchainfile.cmake "${OUT}/buildroot"
89+
8790
####
8891
## Disable this for Ubuntu 14.04, it doesn't seem to be present
8992
####

toolchainfile.cmake

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#
2+
# Automatically generated file; DO NOT EDIT.
3+
# CMake toolchain file for Buildroot
4+
#
5+
6+
# In order to allow the toolchain to be relocated, we calculate the
7+
# HOST_DIR based on this file's location: $(HOST_DIR)/usr/share/buildroot
8+
# and store it in RELOCATED_HOST_DIR.
9+
# All the other variables that need to refer to HOST_DIR will use the
10+
# RELOCATED_HOST_DIR variable.
11+
string(REPLACE "/opt/llvm-obfuscator/buildroot" "" RELOCATED_HOST_DIR ${CMAKE_CURRENT_LIST_DIR})
12+
13+
set(CMAKE_SYSTEM_NAME Linux)
14+
set(CMAKE_SYSTEM_PROCESSOR armv7l)
15+
16+
# Set the {C,CXX}FLAGS appended by CMake depending on the build type
17+
# defined by Buildroot. CMake defaults these variables with -g and/or
18+
# -O options, and they are appended at the end of the argument list,
19+
# so the Buildroot options are overridden. Therefore these variables
20+
# have to be cleared, so that the options passed in CMAKE_C_FLAGS do
21+
# apply.
22+
#
23+
# Note:
24+
# if the project forces some of these flag variables, Buildroot is
25+
# screwed up and there is nothing Buildroot can do about that :(
26+
set(CMAKE_C_FLAGS_DEBUG "" CACHE STRING "Debug CFLAGS")
27+
set(CMAKE_CXX_FLAGS_DEBUG "" CACHE STRING "Debug CXXFLAGS")
28+
set(CMAKE_C_FLAGS_RELEASE " -DNDEBUG" CACHE STRING "Release CFLAGS")
29+
set(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG" CACHE STRING "Release CXXFLAGS")
30+
31+
# Build type from the Buildroot configuration
32+
set(CMAKE_BUILD_TYPE Release CACHE STRING "Buildroot build configuration")
33+
34+
# Buildroot defaults flags.
35+
# If you are using this toolchainfile.cmake file outside of Buildroot and
36+
# want to customize the compiler/linker flags, then:
37+
# * set them all on the cmake command line, e.g.:
38+
# cmake -DCMAKE_C_FLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Dsome_custom_flag" ...
39+
# * and make sure the project's CMake code extends them like this if needed:
40+
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dsome_definitions")
41+
set(CMAKE_C_FLAGS "-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os" CACHE STRING "Buildroot CFLAGS")
42+
set(CMAKE_CXX_FLAGS "-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os" CACHE STRING "Buildroot CXXFLAGS")
43+
set(CMAKE_EXE_LINKER_FLAGS "" CACHE STRING "Buildroot LDFLAGS for executables")
44+
45+
set(CMAKE_INSTALL_SO_NO_EXE 0)
46+
47+
set(CMAKE_PROGRAM_PATH "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/bin")
48+
set(CMAKE_SYSROOT "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/sysroot")
49+
set(CMAKE_FIND_ROOT_PATH "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/sysroot")
50+
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
51+
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
52+
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
53+
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
54+
set(ENV{PKG_CONFIG_SYSROOT_DIR} "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/sysroot")
55+
56+
# This toolchain file can be used both inside and outside Buildroot.
57+
set(CMAKE_C_COMPILER "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/wrappers/bin/arm-linux-gnueabihf-clang")
58+
set(CMAKE_CXX_COMPILER "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/wrappers/bin/arm-linux-gnueabihf-clang++")
59+
#if(1)
60+
# set(CMAKE_Fortran_FLAGS_DEBUG "" CACHE STRING "Debug Fortran FLAGS")
61+
# set(CMAKE_Fortran_FLAGS_RELEASE " -DNDEBUG" CACHE STRING "Release Fortran FLAGS")
62+
# set(CMAKE_Fortran_FLAGS "-Os" CACHE STRING "Buildroot FCFLAGS")
63+
# set(CMAKE_Fortran_COMPILER "${RELOCATED_HOST_DIR}/usr/bin/arm-linux-gnueabihf-gfortran")
64+
#endif()

0 commit comments

Comments
 (0)