Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
9813774
Major CMake refactor
ekilmer Jun 18, 2022
badccc5
CI fixes
ekilmer Jun 18, 2022
72bc190
Fix CMake errors
ekilmer Jun 18, 2022
0a07737
Install graphviz on Windows
ekilmer Jun 18, 2022
c95d74f
More consistent CMake build types
ekilmer Jun 19, 2022
0bb7f22
Fix compiler defines for Windows
ekilmer Jun 20, 2022
9bba052
Fix more bugs
ekilmer Jun 20, 2022
169c2db
Add standalone tool building support
ekilmer Jun 21, 2022
d7b5cfb
Fix typo
ekilmer Jun 21, 2022
1ed9355
Update README
ekilmer Jun 21, 2022
84750f4
Install sleighLift before trying to smoketest it
ekilmer Jun 21, 2022
17e1dab
Test coverage preset
ekilmer Jun 22, 2022
6fd7614
Build documentation by default with CI presets
ekilmer Jun 25, 2022
4debffd
Use COMPONENT for install commands
ekilmer Jun 25, 2022
7f0d2eb
Support cross compiling with host system sleigh compiler
ekilmer Jun 26, 2022
3bd5011
Various fixes found during review
ekilmer Jun 26, 2022
a0140b0
Move "_WINDOWS" define to CMakeLists.txt file
ekilmer Jul 1, 2022
54284ae
Rename ToB 'tools' directory to 'extra-tools'
ekilmer Jul 2, 2022
12c3c02
Separate projects for sleigh tools
ekilmer Jul 4, 2022
814b41c
CMake find_package(Git)
ekilmer Jul 7, 2022
7b8584a
Merge branch 'master' into cmake-presets
ekilmer Jul 7, 2022
fa48d52
Merge branch 'master' into cmake-presets
ekilmer Jul 29, 2022
2ec6a8f
Fix bad merge for patch paths
ekilmer Jul 29, 2022
753e773
Fix missing libconfig.h header install
ekilmer Jul 29, 2022
a1f981b
Fix issues with installation of headers
ekilmer Jul 30, 2022
2a662ba
More refactoring
ekilmer Aug 1, 2022
9108834
Refactor sleighexample into its own project/directory
ekilmer Aug 1, 2022
e2e482f
Refactor specfiles building into separate project/directory
ekilmer Aug 1, 2022
1a865c2
Check for termios.h header and set define if found
ekilmer Aug 1, 2022
98c439d
Update READMEs
ekilmer Aug 1, 2022
bd77fa4
Merge branch 'master' into cmake-presets
ekilmer Aug 1, 2022
e6cda35
Merge branch 'master' into cmake-presets
ekilmer Aug 2, 2022
efbf47a
Better consistency with install rules
ekilmer Aug 2, 2022
3e18877
Merge branch 'master' into cmake-presets
ekilmer Aug 3, 2022
8eb2b68
Build sleighLift as a standalone project with added source
ekilmer Aug 3, 2022
04db45f
More changes to CMake subprojects
ekilmer Aug 4, 2022
5b51d75
Address some code review
ekilmer Aug 17, 2022
df13e47
Add project sleigh_tool for tool subdirectory
ekilmer Aug 17, 2022
79a2b17
Add help text to name the tool executable name
ekilmer Aug 17, 2022
83b4e2f
Add license notice to CMake files
ekilmer Aug 18, 2022
cc4d7d2
Fix/Remove too specific CPack packaging configuration
ekilmer Aug 18, 2022
b69ea12
Consistent capitalization of Sleigh
ekilmer Aug 19, 2022
db18988
Merge branch 'master' into cmake-presets
ekilmer Aug 19, 2022
fa2521c
Merge remote-tracking branch 'origin/master' into cmake-presets
tetsuo-cpp Aug 22, 2022
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
57 changes: 33 additions & 24 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,16 @@ jobs:
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
clang \
rpm \
sudo apt-get install -y rpm

# Use Homebrew for latest build tools for use in CI
brew install \
cmake \
ccache \
doxygen \
xdot \
graphviz

# Minimum supported CMake version testing
curl -L "https://github.com/Kitware/CMake/releases/download/v3.18.0/cmake-3.18.0-Linux-$(uname -m).sh" -o /tmp/cmake-install.sh
mkdir -p "${HOME}/.local"
bash /tmp/cmake-install.sh --skip-license --exclude-subdir "--prefix=${HOME}/.local"

# Use Homebrew for latest build tool version for use in CI
brew install \
ccache

- name: Install macOS system dependencies
if: runner.os == 'macOS'
run: |
Expand All @@ -65,7 +59,7 @@ jobs:

- name: Install Windows system dependencies
if: runner.os == 'Windows'
run: choco install ccache
run: choco install ccache doxygen.install graphviz

- name: Generate cache key
id: cache_key
Expand Down Expand Up @@ -96,24 +90,20 @@ jobs:
# This should be multiplied by the number of compilation jobs and be no
# larger than 5G, which is the cache max size
file(APPEND "$ENV{GITHUB_ENV}" "CCACHE_MAXSIZE=400M\n")
# Tell CMake to use ccache
file(APPEND "$ENV{GITHUB_ENV}" "CMAKE_CXX_COMPILER_LAUNCHER=ccache\n")
file(APPEND "$ENV{GITHUB_ENV}" "CMAKE_C_COMPILER_LAUNCHER=ccache\n")
# Clear stats before every build
execute_process(COMMAND ccache -z)

- name: CMake version
run: cmake --version

- name: Configure the project
run: cmake
-S .
-B build
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_C_COMPILER_LAUNCHER=ccache
shell: pwsh
run: cmake "--preset=ci-$("${{ matrix.os }}".split("-")[0])"
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-Dsleigh_RELEASE_TYPE=${{ matrix.release }}
-Dsleigh_ENABLE_TESTS=ON
-Dsleigh_ENABLE_EXAMPLES=ON
-Dsleigh_ENABLE_PACKAGING=ON
-Dsleigh_ENABLE_DOCUMENTATION=ON

- name: Build the project
run: cmake
Expand All @@ -122,18 +112,28 @@ jobs:
-j 2
-v

- name: Build the docs
run: cmake
--build build
--config ${{ matrix.build_type }}
--target docs
-v

- name: Run the example
run: cmake
--build build
-j 2
--config ${{ matrix.build_type }}
--target sleighexample_runner
--target sleigh_example_runner

- name: Run the install target
run: cmake --install build
--config ${{ matrix.build_type }}
--prefix install

- name: Smoketest sleigh lift
run: ./install/bin/sleigh-lift disassemble x86-64.sla 4881ecc00f0000

- name: Test install directory
working-directory: tests/find_package
run: |
Expand All @@ -142,6 +142,15 @@ jobs:
cd build
ctest -V -C ${{ matrix.build_type }}

- name: Test tool install directory
working-directory: extra-tools/sleigh-lift
run: |
cmake -B build -S . "-Dsleigh_DIR=${{ github.workspace }}/install/lib/cmake/sleigh" -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
cmake --build build -j 2 --config ${{ matrix.build_type }}
cmake --install build --config ${{ matrix.build_type }} --prefix install
./install/bin/sleigh-lift --version
./install/bin/sleigh-lift disassemble x86-64.sla 4881ecc00f0000

- name: Create the packages
run: cmake
--build build
Expand Down Expand Up @@ -224,7 +233,7 @@ jobs:
# failure state
- name: Run the tests
working-directory: build
run: ctest -V -C ${{ matrix.build_type }}
run: ctest -VV -C ${{ matrix.build_type }}

- name: ccache stats
run: ccache -s --verbose
Loading