Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
3772db4753 | |||
3d13ead275 | |||
e7e9ce4baf | |||
e4c11f8107 | |||
270622a5f1 | |||
4b52e5bec4 |
@ -66,7 +66,8 @@ endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
# Manually tweak MSVC to emit (about) the same warnings as clang and gcc on linux
|
||||
add_compile_options("/permissive-" /wd4267 /wd4244 /wd4244 /wd4305 /wd4805 /wd4267 /wd4646 /wd4065 /Dand=&& /Dor=|| /Dnot=!)
|
||||
# needs to be done here using add_compile_definitions() (as opposed to target_compile_definitions()) to be available for all binaries and libraries
|
||||
add_compile_options("/permissive-" /wd4267 /wd4244 /wd4244 /wd4305 /wd4805 /wd4267 /wd4646 /wd4065 /wd4996 /Dand=&& /Dor=|| /Dnot=!)
|
||||
add_compile_definitions(NOMINMAX)
|
||||
endif()
|
||||
|
||||
|
@ -5,7 +5,7 @@ RUN apt-get --yes upgrade
|
||||
|
||||
#tzdata is a dependency, won't install otherwise
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get --yes install ca-certificates clang cmake doxygen g++ gcc git graphviz iputils-ping lcov make msitools nano ninja-build pip python3 python3-simplejson python3-six qemu-system-arm rsync valgrind wget winbind wine64-development
|
||||
RUN apt-get --yes install ca-certificates clang cmake doxygen g++ gcc git graphviz iputils-ping lcov make msitools nano ninja-build pip python3 python3-simplejson python3-six qemu-system-arm rsync valgrind wget winbind
|
||||
|
||||
RUN python3 -m pip install sphinx breathe
|
||||
|
||||
@ -26,8 +26,18 @@ RUN git clone https://github.com/ETLCPP/etl.git && \
|
||||
RUN wget -qO- https://buggy.irs.uni-stuttgart.de/rtems_releases/rtems6-12.2.1.tar.bz2 | tar -xj -C /opt/
|
||||
ENV PATH="$PATH:/opt/rtems/6/bin"
|
||||
|
||||
# install modern wine for MSVC, removing a conflicting file
|
||||
RUN dpkg --add-architecture i386 && \
|
||||
mkdir -pm755 /etc/apt/keyrings && \
|
||||
wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key && \
|
||||
wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/focal/winehq-focal.sources && \
|
||||
apt-get update && \
|
||||
apt-get --yes install winehq-stable
|
||||
# silence wine
|
||||
ENV WINEDEBUG=-all
|
||||
|
||||
# install msvc using https://github.com/mstorsjo/msvc-wine
|
||||
|
||||
# install MSVC using https://github.com/mstorsjo/msvc-wine
|
||||
# see msvc-wine/LICENSE.txt
|
||||
COPY msvc-wine/lowercase msvc-wine/fixinclude msvc-wine/install.sh msvc-wine/vsdownload.py ./
|
||||
COPY msvc-wine/wrappers/* ./wrappers/
|
||||
@ -35,13 +45,12 @@ RUN PYTHONUNBUFFERED=1 ./vsdownload.py --accept-license --dest /opt/msvc && \
|
||||
./install.sh /opt/msvc && \
|
||||
rm lowercase fixinclude install.sh vsdownload.py && \
|
||||
rm -rf wrappers
|
||||
COPY msvc-wine/msvcenv-native.sh /opt/msvc
|
||||
RUN wine64 wineboot --init && \
|
||||
while pgrep wineserver > /dev/null; do sleep 1; done
|
||||
|
||||
|
||||
|
||||
#ssh needs a valid user to work
|
||||
RUN adduser -q --uid 114 jenkins
|
||||
RUN addgroup -q --gid 117 jenkins && adduser -q --uid 114 --gid 117 jenkins
|
||||
|
||||
#add documentation server to known hosts
|
||||
RUN echo "|1|/LzCV4BuTmTb2wKnD146l9fTKgQ=|NJJtVjvWbtRt8OYqFgcYRnMQyVw= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNL8ssTonYtgiR/6RRlSIK9WU1ywOcJmxFTLcEblAwH7oifZzmYq3XRfwXrgfMpylEfMFYfCU8JRqtmi19xc21A=" >> /etc/ssh/ssh_known_hosts
|
||||
|
30
automation/Jenkinsfile
vendored
30
automation/Jenkinsfile
vendored
@ -4,28 +4,28 @@ pipeline {
|
||||
BUILDDIR_LINUX = 'cmake-build-tests-linux'
|
||||
BUILDDIR_FREERTOS = 'cmake-build-tests-freertos'
|
||||
BUILDDIR_RTEMS = 'cmake-build-tests-rtems'
|
||||
BUILDDIR_WIN = 'cmake-build-tests-windows'
|
||||
DOCDDIR = 'cmake-build-documentation'
|
||||
}
|
||||
agent {
|
||||
docker {
|
||||
image 'fsfw-ci:d7'
|
||||
image 'fsfw-ci:d8'
|
||||
args '--network host --sysctl fs.mqueue.msg_max=100'
|
||||
}
|
||||
}
|
||||
stages {
|
||||
stage('Host') {
|
||||
stage('Host-clang') {
|
||||
steps {
|
||||
sh 'rm -rf $BUILDDIR_HOST'
|
||||
|
||||
dir(BUILDDIR_HOST) {
|
||||
sh 'cmake -DFSFW_OSAL=host -DFSFW_BUILD_TESTS=ON -DFSFW_CICD_BUILD=ON ..'
|
||||
sh 'CC=clang CXX=clang++ cmake -DFSFW_OSAL=host -DFSFW_BUILD_TESTS=ON -DFSFW_CICD_BUILD=ON ..'
|
||||
sh 'cmake --build . -j4'
|
||||
sh 'cmake --build . -- fsfw-tests_coverage -j4'
|
||||
sh 'valgrind --leak-check=full --error-exitcode=1 ./fsfw-tests'
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Linux') {
|
||||
stage('Linux-gcc') {
|
||||
steps {
|
||||
sh 'rm -rf $BUILDDIR_LINUX'
|
||||
|
||||
@ -37,19 +37,19 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('FreeRTOS') {
|
||||
stage('FreeRTOS-gcc') {
|
||||
steps {
|
||||
sh 'rm -rf $BUILDDIR_FREERTOS'
|
||||
|
||||
dir(BUILDDIR_FREERTOS) {
|
||||
sh 'cmake -DFSFW_OSAL=freertos -DFSFW_BUILD_TESTS=ON -DFSFW_CICD_BUILD=ON ..'
|
||||
sh 'cmake --build . -j4'
|
||||
sh 'cmake --build . -- fsfw-tests_coverage -j4'
|
||||
sh './fsfw-tests'
|
||||
//sh 'valgrind --leak-check=full --error-exitcode=1 ./fsfw-tests'
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('rtems') {
|
||||
stage('rtems-gcc') {
|
||||
steps {
|
||||
sh 'rm -rf $BUILDDIR_RTEMS'
|
||||
|
||||
@ -60,6 +60,16 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Host-msvc') {
|
||||
steps {
|
||||
sh 'rm -rf $BUILDDIR_WIN'
|
||||
|
||||
dir(BUILDDIR_WIN) {
|
||||
sh 'cmake -DFSFW_OSAL=host -DFSFW_BUILD_TESTS=ON -DFSFW_TESTS_GEN_COV=OFF -DFSFW_CICD_BUILD=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../unittests/testcfg/windows/cmake/x64-windows-toolchain.cmake -GNinja ..'
|
||||
sh 'cmake --build . -j4'
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Documentation') {
|
||||
when {
|
||||
branch 'development'
|
||||
@ -72,7 +82,7 @@ pipeline {
|
||||
sh 'rsync -r --delete docs/sphinx/* buildfix@documentation.irs.uni-stuttgart.de:/fsfw/development'
|
||||
}
|
||||
}
|
||||
dir(BUILDDIR) {
|
||||
dir(BUILDDIR_LINUX) {
|
||||
sshagent(credentials: ['documentation-buildfix']) {
|
||||
sh 'rsync -r --delete fsfw-tests_coverage/* buildfix@documentation.irs.uni-stuttgart.de:/fsfw/coverage/development'
|
||||
}
|
||||
@ -91,7 +101,7 @@ pipeline {
|
||||
sh 'rsync -r --delete docs/sphinx/* buildfix@documentation.irs.uni-stuttgart.de:/fsfw/master'
|
||||
}
|
||||
}
|
||||
dir(BUILDDIR) {
|
||||
dir(BUILDDIR_LINUX) {
|
||||
sshagent(credentials: ['documentation-buildfix']) {
|
||||
sh 'rsync -r --delete fsfw-tests_coverage/* buildfix@documentation.irs.uni-stuttgart.de:/fsfw/coverage/master'
|
||||
}
|
||||
|
@ -5,9 +5,13 @@ set(CMAKE_C_COMPILER /opt/msvc/bin/x64/cl)
|
||||
set(CMAKE_CXX_COMPILER /opt/msvc/bin/x64/cl)
|
||||
|
||||
# built in tests fail
|
||||
set(CMAKE_C_COMPILER_WORKS 1)
|
||||
set(CMAKE_CXX_COMPILER_WORKS 1)
|
||||
set(CMAKE_C_COMPILER_WORKS ON)
|
||||
set(CMAKE_CXX_COMPILER_WORKS ON)
|
||||
|
||||
# fails somewhere caused by wine
|
||||
# overriding internal variable DO NOT TRY THIS AT HOME!
|
||||
set(CMAKE_C_ABI_COMPILED ON)
|
||||
set(CMAKE_CXX_ABI_COMPILED ON)
|
||||
|
||||
# adjust the default behavior of the FIND_XXX() commands:
|
||||
# search programs in the host environment
|
Reference in New Issue
Block a user