Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 27 additions & 22 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,33 @@ env:
TEST_DIR: "${{ github.workspace }}/tests"

jobs:
test:
runs-on: ubuntu-latest
# test:
# runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
# steps:
# - uses: actions/checkout@v6

- name: Install dependencies
run: sudo apt-get install -y build-essential gcc-multilib g++-multilib
# - name: Install dependencies
# run: sudo apt-get install -y build-essential gcc-multilib g++-multilib

- name: Install gcovr
run: pip install gcovr
# - name: Install gcovr
# run: pip install gcovr

- name: Setup project
run: cmake -S ${TEST_DIR} -B ${BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug
# - name: Setup project
# run: cmake -S ${TEST_DIR} -B ${BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug

- name: Build
run: cmake --build ${BUILD_DIR}
# - name: Build
# run: cmake --build ${BUILD_DIR}

# TODO reenable testing once arch. is stable again
# - name: Test
# working-directory: build
# run: ctest -V
# # TODO reenable testing once arch. is stable again
# # - name: Test
# # working-directory: build
# # run: ctest -V

# TODO re-enable this once coverage is complete
# - name: Test with Coverage
# working-directory: build
# run: cmake --build ${BUILD_DIR} --target os_test_coverage
# # TODO re-enable this once coverage is complete
# # - name: Test with Coverage
# # working-directory: build
# # run: cmake --build ${BUILD_DIR} --target os_test_coverage

lint:
runs-on: ubuntu-latest
Expand All @@ -69,7 +69,9 @@ jobs:
with:
dry-run: ${{ github.ref != 'refs/heads/main' }}

needs: [test, lint]
needs:
# - test
- lint

permissions:
contents: write
Expand All @@ -78,7 +80,10 @@ jobs:
runs-on: ubuntu-latest
if: always()

needs: [test, lint, increment_version]
needs:
# - test
- lint
- increment_version

timeout-minutes: 1

Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.15..3.20)

set(CPU_ARCH i386)

set(CROSS_ARCH i386-elf)
set(CROSS_GCC_VERSION 12.2.0)
set(CROSS_PREFIX "$ENV{HOME}/.local/opt/cross")
set(CMAKE_TOOLCHAIN_FILE cmake/toolchain.cmake)

Expand Down
4 changes: 2 additions & 2 deletions cmake/targets.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ function(cross_target_binary target)
${TARGET_LINK_FILES}
--end-group
-nostdlib
"-L${CROSS_PREFIX}/lib/gcc/i386-elf/12.2.0"
"-L${CROSS_PREFIX}/lib/gcc/${CROSS_ARCH}/${CROSS_GCC_VERSION}"
-lgcc
DEPENDS ${target} ${TARGET_LINK_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/link.ld)

Expand All @@ -44,7 +44,7 @@ function(cross_target_binary target)
${TARGET_LINK_FILES}
--end-group
-nostdlib
"-L${CROSS_PREFIX}/lib/gcc/i386-elf/12.2.0"
"-L${CROSS_PREFIX}/lib/gcc/${CROSS_ARCH}/${CROSS_GCC_VERSION}"
-lgcc
DEPENDS ${target} ${TARGET_LINK_FILES})

Expand Down
14 changes: 8 additions & 6 deletions cmake/toolchain.cmake
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
# set(CMAKE_SYSTEM_NAME Generic-ELF)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR i386-elf)
set(CMAKE_SYSTEM_VERSION 12.2.0)
set(CMAKE_SYSTEM_PROCESSOR ${CROSS_ARCH})
# TODO: does this do anything?
#set(CMAKE_SYSTEM_VERSION 12.2.0)
set(CMAKE_SYSTEM_VERSION ${CROSS_GCC_VERSION})

# set(tools /home/devel/gcc-4.7-linaro-rpi-gnueabihf)
set(CMAKE_C_COMPILER ${CROSS_PREFIX}/bin/i386-elf-gcc)
set(CMAKE_C_COMPILER ${CROSS_PREFIX}/bin/${CROSS_ARCH}-gcc)
set(CMAKE_C_FLAGS "-g -Werror -ffreestanding")
set(CMAKE_C_COMPILER_WORKS 1)

set(CMAKE_CXX_COMPILER ${CROSS_PREFIX}/bin/i386-elf-g++)
set(CMAKE_CXX_COMPILER ${CROSS_PREFIX}/bin/${CROSS_ARCH}-g++)
set(CMAKE_CXX_FLAGS "-g -Werror -ffreestanding")
set(CMAKE_CXX_COMPILER_WORKS 1)

set(CMAKE_AR "${CROSS_PREFIX}/bin/i386-elf-ar" CACHE FILEPATH "" FORCE)
set(CMAKE_AR "${CROSS_PREFIX}/bin/${CROSS_ARCH}-ar" CACHE FILEPATH "" FORCE)

set(CMAKE_LINKER "${CROSS_PREFIX}/bin/i386-elf-ld")
set(CMAKE_LINKER "${CROSS_PREFIX}/bin/${CROSS_ARCH}-ld")
set(CMAKE_LINKER_FLAGS "HELLO WORLD")

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
Expand Down
Loading