Skip to content

Commit

Permalink
Cleanup Build (#673)
Browse files Browse the repository at this point in the history
* Pin swift version

* Some build cleanup

* Correctly find unittests even if the build-folder is not called "build"

* Greater build variety in the CI

* Minimize direct modification of CMAKE_CXX_FLAGS + use portable variants of some compilation flags if available + add the ability to turn on -march=native + minor

* Add compile options only for C++ build + link LLVM publicly to support BUILD_SHARED_LIBS

* Only add asan for CXX builds

* Some build cleanup

* Correctly find unittests even if the build-folder is not called "build"

* Greater build variety in the CI

* Minimize direct modification of CMAKE_CXX_FLAGS + use portable variants of some compilation flags if available + add the ability to turn on -march=native + minor

* Add compile options only for C++ build + link LLVM publicly to support BUILD_SHARED_LIBS

* Only add asan for CXX builds

* Move config defines to config.h.in

* Fix add_cxx_* macros + link more privately

* Make PhasarClang optional

* Install phasar-config.h

* Out-factor DebugSan in PHASAR_ENABLE_SANITIZERS

* Allow for multi-config (not tested)

* Make dependencies independent from phasar build flags + enable more warnings

* Support for manually setting USE_LLVM_FAT_LIB + remove some obsolete system dependencies

* Cleanup system deps

* Fix install boost in CI

* Modernize LLVM build + minor improvements in bootstrap.sh

* Improve add_phasar_library

* Fix phasar_llvm lib build

* Cleanup inclusion of OpenSSL- and Swift tests

* minor

* Remove explicit definition of linker language and lib prefix

* Update install

* Improve install by adding phasar include directories to the targets interfaces

* minor

* Small fixes for the in-tree build

* minor style

* minor tweak for in-tree build
  • Loading branch information
fabianbs96 authored Oct 27, 2023
1 parent de6d505 commit 9eda5e2
Show file tree
Hide file tree
Showing 57 changed files with 744 additions and 1,033 deletions.
1 change: 1 addition & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Checks: '-*,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-init-variables,
-cppcoreguidelines-macro-usage,
-cppcoreguidelines-avoid-do-while,
bugprone-*,
-bugprone-easily-swappable-parameters,
modernize-*,
Expand Down
11 changes: 6 additions & 5 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ assignees: ''
Replace the empty checkboxes [ ] below with checked ones [x] accordingly. -->

- [ ] I have searched open and closed issues for duplicates
- [ ] I made sure that I am not using an old project version (DO: pull Phasar, update git submodules, rebuild the project and check if the bug is still there)
- [ ] I made sure that I am not using an old project version (DO: pull PhASAR, update git submodules, rebuild the project and check if the bug is still there)

----------------------------------------

Expand All @@ -24,9 +24,9 @@ Describe here the issue that you are experiencing.
- that reproduce the bug
- e.g. cli arguments and flags

**Actual result:** Describe here what happens after you run the steps above (i.e. the buggy behaviour)
**Actual result:** Describe here what happens after you run the steps above (i.e. the buggy behavior)

**Expected result:** Describe here what should happen after you run the steps above (i.e. what would be the correct behaviour)
**Expected result:** Describe here what should happen after you run the steps above (i.e. what would be the correct behavior)

### Context (Environment)

Expand All @@ -35,7 +35,7 @@ Describe here the issue that you are experiencing.
- **phasar:** \[commit-id]
- **googletest:** \[commit-id]
- **json:** \[commit-id]
- **WALi-OpenNWA:** \[commit-id]
- **json-schema-validator** \[commit-id]

<!-- Which operating system are you using? -->

Expand All @@ -48,11 +48,12 @@ Describe here the issue that you are experiencing.

**Build Type:**
- [ ] cmake
- [ ] bootstrap.sh
- [ ] custom build

### Possible solution

We are happy to discuss possible solutions to this problem, especially if it origniates from a design flaw.
We are happy to discuss possible solutions to this problem, especially if it originates from a design flaw.

### Example files

Expand Down
24 changes: 10 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ jobs:
matrix:
compiler: [ [clang++-14, clang-14] ]
build: [ Debug, Release ]
include:
- build: Debug
flags: -DPHASAR_BUILD_DYNLIB=ON -DPHASAR_ENABLE_SANITIZERS=ON
- build: Release
flags: -DPHASAR_ENABLE_DYNAMIC_LOG=OFF

continue-on-error: false
steps:
Expand All @@ -23,20 +28,11 @@ jobs:
fetch-depth: 0
submodules: recursive

- name: Install Basic Dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get -y install --no-install-recommends \
cmake \
ninja-build \
libstdc++6 \
libboost-all-dev
- name: Install Phasar Dependencies
shell: bash
run: |
./utils/InstallAptDependencies.sh
sudo apt-get -y install --no-install-recommends libboost-graph-dev
- name: Install Strategy Dependencies
shell: bash
Expand All @@ -59,17 +55,17 @@ jobs:
swift-version: "5.8.1"
- name: Building Phasar in ${{ matrix.build }} with ${{ matrix.compiler[0] }}
env:
BUILD_TYPE: ${{ matrix.build }}
CXX: ${{ matrix.compiler[0] }}
CC: ${{ matrix.compiler[1] }}
shell: bash
run: |
mkdir build
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DCMAKE_CXX_COMPILER=$CXX \
-DBUILD_SWIFT_TESTS=1 \
-DCMAKE_BUILD_TYPE=${{ matrix.build }} \
-DBUILD_SWIFT_TESTS=ON \
-DPHASAR_DEBUG_LIBDEPS=ON \
${{ matrix.flags }} \
-G Ninja
cmake --build .
Expand Down
1 change: 1 addition & 0 deletions BreakingChanges.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## Development HEAD

- Default build mode is no longer `SHARED` but `STATIC`. To build in shared mode, use the cmake option `BUILD_SHARED_LIBS` which we don't recommend anymore. Consider using `PHASAR_BUILD_DYNLIB` instead to build one big libphasar.so.
- Build type `DebugSan` has been removed in favor of a new CMake option `PHASAR_ENABLE_SANITIZERS` that not only works in `Debug` mode.

## v0323

Expand Down
Loading

0 comments on commit 9eda5e2

Please sign in to comment.