.#*
config.json
build
+compile-config
--- /dev/null
+How to set up a build:
+
+Copy compile-config.sample to compile-config
+
#!/bin/bash
-NATIVE=no
-
-if grep -q BCM2708 /proc/cpuinfo ; then
- NATIVE=yes
-elif grep -q BCM2709 /proc/cpuinfo ; then
- NATIVE=yes
-elif grep -q BCM2835 /proc/cpuinfo ; then
- NATIVE=yes
-else
- NATIVE=no
-fi
-
-if [ $NATIVE == "no" ]; then
- CROSS_COMPILE_INSERT=-DCMAKE_TOOLCHAIN_FILE=../src/CMakeToolChainRPi.txt
- CROSS_COMPILE_J=-j8
+source compile-config
+
+if [ $CROSS_COMPILE == "yes" ]; then
+ if [ $CROSS_COMPILER == "gcc" ]; then
+ CROSS_COMPILE_INSERT=-DCMAKE_TOOLCHAIN_FILE=../src/CMakeToolChainRPiGCC.txt
+ elif [ $CROSS_COMPILER == "clang" ]; then
+ CROSS_COMPILE_INSERT=-DCMAKE_TOOLCHAIN_FILE=../src/CMakeToolChainRPiClang.txt
+ fi
fi
mkdir build
-cmake $CROSS_COMPILE_INSERT -S src -B build && make -C build $CROSS_COMPILE_J
+cmake $CROSS_COMPILE_INSERT -DENABLE_MOLD=${ENABLE_MOLD} -DMOLD_BIN=${MOLD_BIN} \
+ -S src -B build && make -C build -j$MAKE_J
--- /dev/null
+# Set the number of concurrent threads for compiling (make's -j option):
+MAKE_J=1
+
+# Enable cross-compiling
+CROSS_COMPILE=no
+
+# Set cross compiler. Options: gcc clang
+CROSS_COMPILER=gcc
+
+# Use mold for linker? (Only possible if compiler is clang)
+ENABLE_MOLD=no
+MOLD_BIN=/opt/mold/bin/mold
--- /dev/null
+#!/bin/bash
+
+/usr/bin/distcc /usr/bin/clang-11 "$@"
+#/usr/bin/clang-11 "$@"
+
project(vomp)
add_executable(vomp ${VOMP_OBJ_COMMON} ${VOMP_OBJ_RASPBERRY} pngs.o)
-# Enable next line to use mold linker. Only available when using clang
-target_link_options(vomp PRIVATE "-fuse-ld=/opt/mold/bin/mold")
+# set(CMAKE_CXX_COMPILER_LAUNCHER "distcc") - not until cmake 3.17!
+
+if (${ENABLE_MOLD})
+ target_link_options(vomp PRIVATE "-fuse-ld=${MOLD_BIN}")
+endif()
set(CMAKE_BUILD_TYPE Debug)
target_compile_options(vomp PRIVATE -O0)
+++ /dev/null
-set(CMAKE_SYSTEM_NAME Linux)
-
-set(CMAKE_FIND_ROOT_PATH /pi-root)
-set(CMAKE_SYSROOT /pi-root)
-
-
-# GCC
-#set(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabihf-gcc)
-#set(CMAKE_CXX_COMPILER /usr/bin/arm-linux-gnueabihf-g++)
-#set(CMAKE_C_FLAGS "-Wno-psabi -mtune=cortex-a7 -mfloat-abi=hard -fopenmp")
-#set(CMAKE_CXX_FLAGS "-Wno-psabi -mtune=cortex-a7 -mfloat-abi=hard -fopenmp")
-
-# Pi1: -mtune=arm1176jzf-s Pi2: -mtune=cortex-a7 Pi3: -mtune=cortex-a53
-
-# Clang
-set(CMAKE_C_COMPILER /usr/bin/clang-11)
-set(CMAKE_CXX_COMPILER /usr/bin/clang++-11)
-set(CMAKE_LINKER /usr/bin/arm-linux-gnueabihf-ld)
-set(CMAKE_C_FLAGS "-target arm-linux-gnueabihf -mfloat-abi=hard -mcpu=cortex-a7")
-set(CMAKE_CXX_FLAGS "-target arm-linux-gnueabihf -mfloat-abi=hard -mcpu=cortex-a7")
-
-
-set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-
-set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
--- /dev/null
+set(CMAKE_SYSTEM_NAME Linux)
+
+set(CMAKE_FIND_ROOT_PATH /pi-root)
+set(CMAKE_SYSROOT /pi-root)
+
+# Clang
+#set(CMAKE_C_COMPILER "/usr/bin/clang-11")
+#set(CMAKE_CXX_COMPILER "/usr/bin/clang++-11")
+set(CMAKE_C_COMPILER "/opt/vompclient/compiler")
+set(CMAKE_CXX_COMPILER "/opt/vompclient/compiler")
+set(CMAKE_LINKER /usr/bin/arm-linux-gnueabihf-ld)
+set(CMAKE_C_FLAGS "-target arm-linux-gnueabihf -mfloat-abi=hard -mcpu=cortex-a7")
+set(CMAKE_CXX_FLAGS "-target arm-linux-gnueabihf -mfloat-abi=hard -mcpu=cortex-a7")
+
+
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
--- /dev/null
+set(CMAKE_SYSTEM_NAME Linux)
+
+set(CMAKE_FIND_ROOT_PATH /pi-root)
+set(CMAKE_SYSROOT /pi-root)
+
+# GCC
+set(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabihf-gcc)
+set(CMAKE_CXX_COMPILER /usr/bin/arm-linux-gnueabihf-g++)
+set(CMAKE_C_FLAGS "-Wno-psabi -mtune=cortex-a7 -mfloat-abi=hard -fopenmp")
+set(CMAKE_CXX_FLAGS "-Wno-psabi -mtune=cortex-a7 -mfloat-abi=hard -fopenmp")
+
+# Pi1: -mtune=arm1176jzf-s Pi2: -mtune=cortex-a7 Pi3: -mtune=cortex-a53
+
+
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)