Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
90abec1
Enable Qt6
TheForce172 Aug 16, 2025
39b6864
Fix Main Window For DPI Scaling
TheForce172 Aug 16, 2025
f9193b8
Add back in RCC
TheForce172 Aug 16, 2025
a648932
Fix Deprecations
TheForce172 Aug 18, 2025
5d77068
Build Fix and remove illegal chars
TheForce172 Sep 9, 2025
76c90e6
Fix more illegal Chars
TheForce172 Sep 9, 2025
ea8048e
Update Workflows
TheForce172 Sep 9, 2025
a01c08a
Test Reenabling Qtfred for windows
TheForce172 Sep 9, 2025
ac1996b
Revert "Test Reenabling Qtfred for windows"
TheForce172 Sep 9, 2025
f67072f
Try again
TheForce172 Sep 9, 2025
d4d176b
Fix indent
TheForce172 Sep 9, 2025
a5f1477
update cache
TheForce172 Sep 9, 2025
8566051
Remove cache
TheForce172 Sep 9, 2025
1c5ea82
Remove Qtfred 32bit as qt6 drops support
TheForce172 Sep 9, 2025
652ac96
other workflows
TheForce172 Sep 9, 2025
63d96cd
Fix Several Crashes on close
TheForce172 May 1, 2026
91efbef
Fix Merge Error
TheForce172 May 1, 2026
ba06aea
Qt6 Changes
TheForce172 May 1, 2026
1301afa
Not entirely Sure why but VS studio debug needs this to run
TheForce172 May 1, 2026
9bc3067
Build qthelp for QT6
TheForce172 May 20, 2026
e95b917
fix qtfred help
MjnMixael May 21, 2026
ad7036f
Try to fix briefing editor
TheForce172 May 21, 2026
dce94d0
supress dpi context warning
TheForce172 May 21, 2026
c99f0c6
Try and disable console on non dev machines
TheForce172 May 21, 2026
c1937df
bump macOS deployment target to 10.15
notimaginative May 21, 2026
0c0adca
add support for precompiled Qt libs
notimaginative May 21, 2026
efb01f6
fix executable type for Windows/Mac
notimaginative May 21, 2026
c62355d
fix finding of qhelpgenerator on Mac/Linux
notimaginative May 21, 2026
448e6d9
place help files in proper location on Mac
notimaginative May 21, 2026
d3cb80b
add Mac app bundle info for qtFRED
notimaginative May 21, 2026
6462d53
fix binary identification in AppImage script
notimaginative Jun 1, 2026
6d1e5de
Mjn's help cache fix
notimaginative Jun 1, 2026
a4da8fb
add warning to not distribute builds using system Qt install
notimaginative Jun 1, 2026
5689b30
switch to universal deployment setup
notimaginative Jun 1, 2026
57dcc67
add custom fonts for Linux and fix platform check
notimaginative Jun 4, 2026
9e2d83f
remove AppImage hack for broken Wayland in Qt5
notimaginative Jun 4, 2026
7455183
stop install of things we don't need
notimaginative Jun 4, 2026
b2da63b
fix cmake policy warning
notimaginative Jun 4, 2026
058947d
stop installation of runtime libs (KNet does it)
notimaginative Jun 4, 2026
d519df1
remove broken imported config mapping
notimaginative Jun 4, 2026
dc1f970
Reapply #7450
TheForce172 Jun 10, 2026
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
22 changes: 10 additions & 12 deletions .github/workflows/build-nightly.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- 'nightly_*'

env:
QT_VERSION: 5.12.12
QT_VERSION: 6.9.2

jobs:
build_linux:
Expand Down Expand Up @@ -38,7 +38,7 @@ jobs:
env:
CONFIGURATION: ${{ matrix.configuration }}
run: |
LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
LD_LIBRARY_PATH=$Qt6_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
Expand Down Expand Up @@ -125,15 +125,13 @@ jobs:
# arch: win32_msvc2017
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
# - name: Install Qt (64 bit)
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.arch == 'x64' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win64_msvc2017_64
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
- name: Install Qt (64 bit)
uses: jurplel/install-qt-action@v4
if: ${{ matrix.arch == 'x64' }}
with:
version: ${{ env.QT_VERSION }}
dir: ${{ github.workspace }}/..
arch: win64_msvc2022_64
- name: Prepare Vulkan SDK
uses: humbletim/setup-vulkan-sdk@v1.2.1
with:
Expand Down Expand Up @@ -276,7 +274,7 @@ jobs:
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja all
run: LD_LIBRARY_PATH=$Qt6_DIR/lib:$LD_LIBRARY_PATH ninja all
- name: Run Tests
working-directory: ./build
env:
Expand Down
22 changes: 10 additions & 12 deletions .github/workflows/build-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- 'release_*'

env:
QT_VERSION: 5.12.12
QT_VERSION: 6.9.2

jobs:
create_release:
Expand Down Expand Up @@ -69,7 +69,7 @@ jobs:
env:
CONFIGURATION: ${{ matrix.configuration }}
run: |
LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
LD_LIBRARY_PATH=$Qt6_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
Expand Down Expand Up @@ -180,16 +180,14 @@ jobs:
# arch: win32_msvc2017
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
# - name: Install Qt (64 bit)
- name: Install Qt (64 bit)
# # Install Qt 64bit if matrix.arch == x64
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.arch == 'x64' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win64_msvc2017_64
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
uses: jurplel/install-qt-action@v4
if: ${{ matrix.arch == 'x64' }}
with:
version: ${{ env.QT_VERSION }}
dir: ${{ github.workspace }}/..
arch: win64_msvc2022_64
- name: Prepare Vulkan SDK
uses: humbletim/setup-vulkan-sdk@v1.2.1
with:
Expand Down Expand Up @@ -346,7 +344,7 @@ jobs:
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja all
run: LD_LIBRARY_PATH=$Qt6_DIR/lib:$LD_LIBRARY_PATH ninja all
- name: Run Tests
working-directory: ./build
env:
Expand Down
22 changes: 10 additions & 12 deletions .github/workflows/build-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- 'test/*'

env:
QT_VERSION: 5.12.12
QT_VERSION: 6.9.2

jobs:
build_linux:
Expand Down Expand Up @@ -38,7 +38,7 @@ jobs:
env:
CONFIGURATION: ${{ matrix.configuration }}
run: |
LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
LD_LIBRARY_PATH=$Qt6_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
Expand Down Expand Up @@ -123,15 +123,13 @@ jobs:
# arch: win32_msvc2017
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
# - name: Install Qt (64 bit)
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.arch == 'x64' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win64_msvc2017_64
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
- name: Install Qt (64 bit)
uses: jurplel/install-qt-action@v4
if: ${{ matrix.arch == 'x64' }}
with:
version: ${{ env.QT_VERSION }}
dir: ${{ github.workspace }}/..
arch: win64_msvc2022_64
- name: Prepare Vulkan SDK
uses: humbletim/setup-vulkan-sdk@v1.2.1
with:
Expand Down Expand Up @@ -274,7 +272,7 @@ jobs:
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja all
run: LD_LIBRARY_PATH=$Qt6_DIR/lib:$LD_LIBRARY_PATH ninja all
- name: Run Tests
working-directory: ./build
env:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/cache-master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- master

env:
QT_VERSION: 5.12.12
QT_VERSION: 6.9.1

jobs:
build_linux:
Expand Down Expand Up @@ -49,10 +49,10 @@ jobs:
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
CCACHE_PATH: /usr/local/bin/ccache
ENABLE_QTFRED: ON
Qt5_DIR: /qt/${{ env.QT_VERSION }}/gcc_64/lib/cmake/Qt5
Qt6_DIR: /qt/${{ env.QT_VERSION }}/gcc_64/lib/cmake/Qt6
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
run: LD_LIBRARY_PATH=$Qt6_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
- name: Show CCache statistics
run: ccache --show-stats
52 changes: 24 additions & 28 deletions .github/workflows/test-pull_request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Check a pull request
on: [pull_request]

env:
QT_VERSION: 5.12.12
QT_VERSION: 6.9.2

jobs:
build_linux:
Expand Down Expand Up @@ -52,11 +52,11 @@ jobs:
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
CCACHE_PATH: /usr/local/bin/ccache
ENABLE_QTFRED: ON
Qt5_DIR: /qt/${{ env.QT_VERSION }}/gcc_64/lib/cmake/Qt5
Qt6_DIR: /qt/${{ env.QT_VERSION }}/gcc_64/lib/cmake/Qt6
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
run: LD_LIBRARY_PATH=$Qt6_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
Expand Down Expand Up @@ -90,30 +90,26 @@ jobs:
name: Checkout
with:
submodules: true
# - name: Cache Qt
# id: cache-qt-win
# uses: actions/cache@v1
# with:
# path: ${{ github.workspace }}/../Qt
#- name: Cache Qt
#id: cache-qt-win
#uses: actions/cache@v4https://github.com/jurplel/install-qt-action
#with:
#path: ${{ github.workspace }}/../Qt
# key: ${{ runner.os }}-${{ matrix.arch }}-QtCache-${{ env.QT_VERSION }}
# - name: Install Qt (32 bit)
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.compiler == 'MSVC' && matrix.arch == 'Win32' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win32_msvc2017
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
# - name: Install Qt (64 bit)
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.compiler == 'MSVC' && matrix.arch == 'x64' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win64_msvc2017_64
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
#- name: Install Qt (32 bit)
# uses: jurplel/install-qt-action@v4
# if: ${{ matrix.compiler == 'MSVC' && matrix.arch == 'Win32' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win32_msvc2022
- name: Install Qt (64 bit)
uses: jurplel/install-qt-action@v4
if: ${{ matrix.compiler == 'MSVC' && matrix.arch == 'x64' }}
with:
version: ${{ env.QT_VERSION }}
dir: ${{ github.workspace }}/..
arch: win64_msvc2022_64
- name: Prepare Vulkan SDK
uses: humbletim/setup-vulkan-sdk@v1.2.1
with:
Expand Down Expand Up @@ -146,7 +142,7 @@ jobs:
else
cmake -DFSO_USE_SPEECH="ON" -DFSO_FATAL_WARNINGS="ON" -DFSO_USE_VOICEREC="OFF" -DFSO_BUILD_TESTS="ON" \
-DFORCED_SIMD_INSTRUCTIONS=SSE2 -DFSO_BUILD_FRED2="ON" -G "Visual Studio 17 2022" \
-DFSO_BUILD_QTFRED=OFF -T "v143" -A "$ARCHITECTURE" -DCMAKE_BUILD_TYPE=$CONFIGURATION ..
-DFSO_BUILD_QTFRED="ON" -T "v143" -A "$ARCHITECTURE" -DCMAKE_BUILD_TYPE=$CONFIGURATION ..
fi
fi
- name: Compile
Expand Down Expand Up @@ -225,7 +221,7 @@ jobs:
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja all
run: LD_LIBRARY_PATH=$Qt6_DIR/lib:$LD_LIBRARY_PATH ninja all
- name: Run Tests
working-directory: ./build
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/weekly-coverity-scan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
- cron: "5 0 * * 5" # Run once per a week on Friday morning (midnight UTC, 4 AM EST), to avoid Coverity's submission limits

env:
QT_VERSION: 5.12.12
QT_VERSION: 6.9.1
coverity_email: SirKnightlySCP@gmail.com
coverity_token: ${{ secrets.COVERITY_TOKEN }}

Expand Down
2 changes: 1 addition & 1 deletion ci/linux/configure_cmake.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ if [ "$COMPILER" = "clang-16" ]; then
export CXX=clang++-16
fi

LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=$Qt6_DIR/lib:$LD_LIBRARY_PATH
if [ "$RUNNER_OS" = "macOS" ]; then
CXXFLAGS="-mtune=generic -pipe -Wno-unknown-pragmas"
CFLAGS="-mtune=generic -pipe -Wno-unknown-pragmas"
Expand Down
4 changes: 2 additions & 2 deletions ci/linux/generate_appimage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_FOLDER/Freespace2 -DCOMPONENT=Unspecified
cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_FOLDER/Freespace2 -DCOMPONENT=Freespace2 -P cmake_install.cmake

# We need to be a bit creative for determining the AppImage name since we don't want to hard-code the name
FILENAME="$(find $INSTALL_FOLDER/Freespace2/bin -name 'fs2_open_*' -type f -printf "%f\n").AppImage"
FILENAME="$(find $INSTALL_FOLDER/Freespace2/bin -maxdepth 1 -name 'fs2_open_*' -type f -executable -printf "%f\n").AppImage"
./bin/appimagetool -n "$INSTALL_FOLDER/Freespace2" "$INSTALL_FOLDER/$FILENAME"
chmod +x "$INSTALL_FOLDER/$FILENAME"

Expand All @@ -41,7 +41,7 @@ if [ -f qtfred/cmake_install.cmake ]; then
cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_FOLDER/qtFRED -DCOMPONENT=qtFRED -P cmake_install.cmake

# We need to be a bit creative for determining the AppImage name since we don't want to hard-code the name
FILENAME="$(find $INSTALL_FOLDER/qtFRED/bin -iname 'qtfred_*' -type f -printf "%f\n").AppImage"
FILENAME="$(find $INSTALL_FOLDER/qtFRED/bin -maxdepth 1 -iname 'qtfred_*' -type f -executable -printf "%f\n").AppImage"
./bin/appimagetool -n "$INSTALL_FOLDER/qtFRED" "$INSTALL_FOLDER/$FILENAME"
chmod +x "$INSTALL_FOLDER/$FILENAME"
fi
Expand Down
3 changes: 2 additions & 1 deletion cmake/platform-darwin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ endif()
target_link_libraries(platform INTERFACE ${COCOA_LIBRARY})

# To support C++17 we need to target at least 10.13. maybe 10.14 for some rare features
SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.13")
# bump to 10.15 for c++17 std::filesystem usage in qtFRED
SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.15")

SET(CMAKE_SKIP_RPATH FALSE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
Expand Down
2 changes: 1 addition & 1 deletion code/cfile/cfile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ cf_pathtype Pathtypes[CF_MAX_PATH_TYPES] = {
{ CF_TYPE_INTEL_ANIMS, "data" DIR_SEPARATOR_STR "intelanims", ".pcx .ani .eff .tga .jpg .png .dds .ktx", CF_TYPE_DATA },
{ CF_TYPE_SCRIPTS, "data" DIR_SEPARATOR_STR "scripts", ".lua .lc .fnl", CF_TYPE_DATA },
{ CF_TYPE_FICTION, "data" DIR_SEPARATOR_STR "fiction", ".txt", CF_TYPE_DATA },
{ CF_TYPE_FREDDOCS, "data" DIR_SEPARATOR_STR "freddocs", ".html .qch .css .png .jpg", CF_TYPE_DATA }
{ CF_TYPE_FREDDOCS, "data" DIR_SEPARATOR_STR "freddocs", ".html .css .png .jpg", CF_TYPE_DATA }
};
// clang-format on

Expand Down
2 changes: 1 addition & 1 deletion code/math/bitarray.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
* A 0 (1) bit corresponds to the Boolean value false (true), respectively. We can look at a stream of bytes
* as a stream of bits; each byte contains 8 bits, so any n bytes hold n*8 bits. And the operation to
* manipulate this stream or bit array is so easy, just read or change the bit's state or make any Boolean
* operation on the whole bits array, like ‘AND’, ‘OR’, or ‘XOR’.
* operation on the whole bits array, like 'AND', 'OR', or 'XOR'.
*
* As each byte contains 8 bits, we need to divide the bit number by 8 to reach the byte that holds the bit.
* Then, we can seek to the right bit in the reached byte by the remainder of dividing the bit number by 8.
Expand Down
4 changes: 2 additions & 2 deletions lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ ADD_SUBDIRECTORY(lz4)

set(HIDAPI_WITH_LIBUSB OFF)
set(HIDAPI_WITH_HIDRAW ON)
add_subdirectory(hidapi)
add_subdirectory(hidapi EXCLUDE_FROM_ALL)

ADD_SUBDIRECTORY(imgui)

if(FSO_BUILD_WITH_OPENXR)
add_subdirectory(openxr)
add_subdirectory(openxr EXCLUDE_FROM_ALL)
endif()
2 changes: 1 addition & 1 deletion lib/antlr4.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ endif()
set(WITH_DEMO FALSE)
set(ANTLR4_INSTALL FALSE)

add_subdirectory(antlr4-cpp-runtime)
add_subdirectory(antlr4-cpp-runtime EXCLUDE_FROM_ALL)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/antlr4-cpp-runtime/cmake" PARENT_SCOPE)
suppress_warnings(antlr4_static)
Expand Down
Loading
Loading