Skip to content
Draft
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
21 changes: 15 additions & 6 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,21 @@ jobs:
install: |
sudo apt-get update
sudo apt-get install -y \
clang \
lld \
libc++-dev \
libc++abi-dev \
ninja-build
clang lld libc++-dev libc++abi-dev ninja-build \
gnome-desktop-testing libasound2-dev libpulse-dev \
libaudio-dev libfribidi-dev libjack-dev libsndio-dev libx11-dev libxext-dev \
libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxtst-dev \
libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \
libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev libthai-dev \
libpipewire-0.3-dev libwayland-dev libdecor-0-dev liburing-dev
configure: |
-G Ninja \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_LINKER=lld \
-DCMAKE_CXX_FLAGS="-stdlib=libc++" \
-DSDL_STATIC=ON \
-DSDL_SHARED=OFF \
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--gc-sections"

- name: MacOS Universal
Expand All @@ -57,7 +61,9 @@ jobs:
-G Ninja \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \
-DSDL_STATIC=ON \
-DSDL_SHARED=OFF

- name: Windows MinGW x86_64
os: windows-latest
Expand All @@ -80,6 +86,8 @@ jobs:
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_LINKER=lld \
-DSDL_STATIC=ON \
-DSDL_SHARED=OFF \
-DCMAKE_EXE_LINKER_FLAGS="-static -Wl,--gc-sections" \
-DCMAKE_SHARED_LINKER_FLAGS="-static"

Expand All @@ -94,6 +102,7 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Required so we can move and push tags
submodules: recursive

- name: Install dependencies
run: ${{ matrix.config.install }}
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,6 @@ build/
.cache/
*.bak
*.wad

library/SDL/*
library/imgui/*
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[submodule "library/sdl"]
path = library/sdl
url = https://github.com/libsdl-org/SDL.git
[submodule "library/imgui"]
path = library/imgui
url = https://github.com/ocornut/imgui.git
46 changes: 34 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,42 @@ if(SAN_COUNT GREATER 0)
endif()
endif()

# SDL3
set(SDL_TEST OFF CACHE BOOL "" FORCE)
set(SDL_INSTALL OFF CACHE BOOL "" FORCE)
set(SDL_STATIC ON CACHE BOOL "" FORCE)
set(SDL_SHARED OFF CACHE BOOL "" FORCE)
add_subdirectory(library/sdl)

# Dear ImGui
add_library(imgui STATIC
library/imgui/imgui.cpp
library/imgui/imgui_demo.cpp
library/imgui/imgui_draw.cpp
library/imgui/imgui_tables.cpp
library/imgui/imgui_widgets.cpp
library/imgui/backends/imgui_impl_sdl3.cpp
library/imgui/backends/imgui_impl_sdlrenderer3.cpp
)

target_include_directories(imgui PUBLIC
library/imgui
library/imgui/backends
)

target_link_libraries(imgui PUBLIC SDL3::SDL3)

add_executable(elfbsp
src/bsp.cpp
src/core.hpp
src/level.cpp
src/local.hpp
src/main.cpp
src/misc.cpp
src/node.cpp
src/parse.cpp
src/polyobj.cpp
src/view.cpp
src/wad.cpp
)

Expand All @@ -85,6 +113,11 @@ target_compile_options(elfbsp PRIVATE
$<$<COMPILE_LANGUAGE:CXX>:-Wold-style-cast>
)

target_link_libraries(elfbsp PRIVATE
SDL3::SDL3
imgui
)

if(ENABLE_WERROR)
target_compile_options(elfbsp PRIVATE -Werror)
endif()
Expand Down Expand Up @@ -125,18 +158,7 @@ set(CPACK_GENERATOR ZIP)
if(WIN32)
install(FILES LICENSE.txt DESTINATION .)
install(FILES elfbsp.cfg DESTINATION .)
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.21 AND NOT VCPKG_TOOLCHAIN)
install(
TARGETS elfbsp
RUNTIME_DEPENDENCIES
PRE_EXCLUDE_REGEXES "api-ms-" "ext-ms-"
POST_EXCLUDE_REGEXES ".*system32/.*\\.dll"
DIRECTORIES $<TARGET_FILE_DIR:elfbsp> $ENV{PATH}
RUNTIME DESTINATION .
)
else()
install(TARGETS elfbsp RUNTIME DESTINATION .)
endif()
install(TARGETS elfbsp RUNTIME DESTINATION .)
else()
include(GNUInstallDirs)
install(FILES LICENSE.txt DESTINATION "share/doc/${PROJECT_NAME}")
Expand Down
Loading
Loading