Trying to fix windows

This commit is contained in:
Shaun Reed 2023-01-21 08:01:13 -05:00
parent 48719412f2
commit db3f6287fe
7 changed files with 75 additions and 52 deletions

View File

@ -35,10 +35,18 @@ jobs:
args: install pkgconfiglite --checksum e87b5ea3c9142256af60f2d5b917aa63b571e6a0 --checksum-type sha1
- name: Build Qtk
if: matrix.os == 'windows-latest'
shell: bash
run: |
cmake -B build/ ${{ matrix.cmake }} -DQTK_UPDATE_SUBMODULES=ON
cmake --build build/ -- -j $(nproc)
cmake -B build/ ${{ matrix.cmake }} -DQTK_UPDATE_SUBMODULES=ON -DQTK_DEBUG=OFF
cmake --build build/ --config Release
- name: Build Qtk
if: matrix.os != 'windows-latest'
shell: bash
run: |
cmake -B build/ ${{ matrix.cmake }} -DQTK_UPDATE_SUBMODULES=ON -DQTK_DEBUG=OFF
cmake --build build/ --config Release -- -j $(nproc)
- name: Install Qtk
shell: bash
@ -52,10 +60,18 @@ jobs:
path: install/*
- name: Package Qtk
if: matrix.os == 'windows-latest'
shell: bash
run: |
cd build/
cmake --build . --target package -- -j $(nproc)
cmake --build . --target package --config Release
- name: Package Qtk
if: matrix.os != 'windows-latest'
shell: bash
run: |
cd build/
cmake --build . --target package --config Release -- -j $(nproc)
# - name: Package Qtk Sources
# if: matrix.os != 'macos-latest'
@ -104,9 +120,18 @@ jobs:
sudo apt install libassimp-dev
- name: Build Qtk
if: matrix.os == 'windows-latest'
shell: bash
run: |
cmake -B build/ ${{ matrix.cmake }} && cmake --build build/ -- -j $(nproc)
cmake -B build/ ${{ matrix.cmake }} -DQTK_DEBUG=OFF
cmake --build build/ --config Release
- name: Build Qtk
if: matrix.os != 'windows-latest'
shell: bash
run: |
cmake -B build/ ${{ matrix.cmake }} -DQTK_DEBUG=OFF
cmake --build build/ --config Release -- -j $(nproc)
# TODO: Enable with tag only when done testing
# Release-Qtk:

View File

@ -25,7 +25,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
#set(CMAKE_MACOSX_BUNDLE ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
if(MSVC)
if(WIN32)
set(CMAKE_COMPILE_WARNING_AS_ERROR OFF)
add_compile_options(-warnnotaserror)
add_compile_options(/wd4131 /wd4127)
@ -58,6 +58,12 @@ option(
OFF
)
if(NOT QTK_DEBUG)
set(CMAKE_BUILD_TYPE Release)
else()
set(CMAKE_BUILD_TYPE Debug)
endif()
set(QT_DIR "$ENV{HOME}/Qt/" CACHE PATH "Path to Qt6")
# Qt Designer will look in different locations if WIN / Unix.
@ -116,12 +122,13 @@ if(NOT Qt6_FOUND)
endif()
# Find Assimp
set(ASSIMP_BUILD_TESTS OFF)
set(ASSIMP_BUILD_TESTS OFF CACHE STRING "Do not build assimp tests." FORCE)
if(QTK_UPDATE_SUBMODULES)
message(STATUS "[Qtk] Updating submodules...")
set(ASSIMP_INSTALL OFF)
set(ASSIMP_INSTALL OFF CACHE STRING "Use assimp as a submodule." FORCE)
set(ASSIMP_WARNINGS_AS_ERRORS OFF CACHE STRING "No warnings as errors." FORCE)
submodule_update("${CMAKE_CURRENT_SOURCE_DIR}/extern/assimp/assimp/")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/extern/assimp/assimp/")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/extern/assimp/assimp/" EXCLUDE_FROM_ALL)
else()
find_package(assimp REQUIRED)
endif()

View File

@ -123,36 +123,37 @@ qt_generate_deploy_app_script(
)
install(SCRIPT ${QTK_DEPLOY_SCRIPT})
if(WIN32)
get_target_property(_qt6_qmake_location Qt6::qmake IMPORTED_LOCATION)
execute_process(
COMMAND "${_qt6_qmake_location}" -query QT_INSTALL_PREFIX
RESULT_VARIABLE return_code
OUTPUT_VARIABLE qt6_install_prefix
OUTPUT_STRIP_TRAILING_WHITESPACE
)
file(TO_NATIVE_PATH "${qt6_install_prefix}/bin" qt6_install_prefix)
if(TARGET Qt6::windeployqt)
add_custom_command(
TARGET qtk_main
POST_BUILD
COMMAND set PATH=%PATH%$<SEMICOLON>${qt6_install_prefix}
COMMAND Qt6::windeployqt --dir "${CMAKE_BINARY_DIR}/windeployqt" "$<TARGET_FILE_DIR:qtk_main>/$<TARGET_FILE_NAME:qtk_main>"
)
install(DIRECTORY "${CMAKE_BINARY_DIR}/windeployqt/" DESTINATION bin)
endif()
if(MSVC AND TARGET Qt6::qmake)
set(VSUSER_FILE "${CMAKE_CURRENT_BINARY_DIR}/qtk_main.vcxproj.user")
file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/extern/assimp/assimp/bin" assimp_bin)
file(WRITE ${VSUSER_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
file(APPEND ${VSUSER_FILE} "<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n")
file(APPEND ${VSUSER_FILE} " <PropertyGroup>\n")
file(APPEND ${VSUSER_FILE} " <LocalDebuggerEnvironment>Path=$(SolutionDir)\\lib\\$(Configuration);${qt6_install_prefix};${assimp_bin};$(Path)\n")
file(APPEND ${VSUSER_FILE} "$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>\n")
file(APPEND ${VSUSER_FILE} " <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>\n")
file(APPEND ${VSUSER_FILE} " </PropertyGroup>\n")
file(APPEND ${VSUSER_FILE} "</Project>\n")
endif()
endif()
#if(WIN32)
# get_target_property(_qt6_qmake_location Qt6::qmake IMPORTED_LOCATION)
# execute_process(
# COMMAND "${_qt6_qmake_location}" -query QT_INSTALL_PREFIX
# RESULT_VARIABLE return_code
# OUTPUT_VARIABLE qt6_install_prefix
# OUTPUT_STRIP_TRAILING_WHITESPACE
# )
# file(TO_NATIVE_PATH "${qt6_install_prefix}/bin" qt6_install_prefix)
#
# if(TARGET Qt6::windeployqt)
# add_custom_command(
# TARGET qtk_main
# POST_BUILD
# COMMAND set PATH=%PATH%$<SEMICOLON>${qt6_install_prefix}
# COMMAND Qt6::windeployqt --dir "${CMAKE_BINARY_DIR}/windeployqt" "$<TARGET_FILE_DIR:qtk_main>/$<TARGET_FILE_NAME:qtk_main>"
# )
# install(DIRECTORY "${CMAKE_BINARY_DIR}/windeployqt/" DESTINATION bin)
# endif()
#
# if(MSVC AND TARGET Qt6::qmake)
# set(VSUSER_FILE "${CMAKE_CURRENT_BINARY_DIR}/qtk_main.vcxproj.user")
# file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/extern/assimp/assimp/bin" assimp_bin)
# file(WRITE ${VSUSER_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
# file(APPEND ${VSUSER_FILE} "<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n")
# file(APPEND ${VSUSER_FILE} " <PropertyGroup>\n")
# file(APPEND ${VSUSER_FILE} " <LocalDebuggerEnvironment>Path=$(SolutionDir)\\lib\\$(Configuration);${qt6_install_prefix};${assimp_bin};$(Path)\n")
# file(APPEND ${VSUSER_FILE} "$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>\n")
# file(APPEND ${VSUSER_FILE} " <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>\n")
# file(APPEND ${VSUSER_FILE} " </PropertyGroup>\n")
# file(APPEND ${VSUSER_FILE} "</Project>\n")
# endif()
#endif()

View File

@ -42,9 +42,7 @@ QtkWidget::QtkWidget(QWidget * parent, const QString & name, Scene * scene) :
// Set the size of the depth bufer for glEnable(GL_DEPTH_TEST)
format.setDepthBufferSize(16);
// If QTK_DEBUG is set, enable debug context
#ifdef QTK_DEBUG
format.setOption(QSurfaceFormat::DebugContext);
#endif
setFormat(format);
setFocusPolicy(Qt::ClickFocus);
}
@ -73,7 +71,6 @@ void QtkWidget::initializeGL() {
connect(this, SIGNAL(frameSwapped()), this, SLOT(update()));
// Initialize OpenGL debug context
#ifdef QTK_DEBUG
mDebugLogger = new QOpenGLDebugLogger(this);
if(mDebugLogger->initialize()) {
qDebug() << "GL_DEBUG Debug Logger" << mDebugLogger << "\n";
@ -82,7 +79,6 @@ void QtkWidget::initializeGL() {
SLOT(messageLogged(QOpenGLDebugMessage)));
mDebugLogger->startLogging();
}
#endif // QTK_DEBUG
printContextInformation();

View File

@ -156,7 +156,6 @@ namespace Qtk {
*/
void update();
#ifdef QTK_DEBUG
/**
* Called when the `messageLogged` signal is caught.
* See definition of initializeGL()
@ -164,7 +163,6 @@ namespace Qtk {
* @param msg The message logged.
*/
void messageLogged(const QOpenGLDebugMessage & msg);
#endif
private:
/*************************************************************************
@ -181,20 +179,16 @@ namespace Qtk {
*/
static void updateCameraInput();
#ifdef QTK_DEBUG
/**
* Prints OpenGL context information at start of debug session.
*/
void printContextInformation();
#endif
/*************************************************************************
* Private Members
************************************************************************/
#ifdef QTK_DEBUG
QOpenGLDebugLogger * mDebugLogger;
#endif
Qtk::Scene * mScene;
Qtk::DebugConsole * mConsole;
bool mConsoleActive = false;

View File

@ -18,7 +18,7 @@ namespace Ui {
}
namespace Qtk {
class QDESIGNER_WIDGET_EXPORT ToolBox : public QDockWidget {
class ToolBox : public QDockWidget {
Q_OBJECT
public:

View File

@ -22,7 +22,7 @@ namespace Ui {
}
namespace Qtk {
class QDESIGNER_WIDGET_EXPORT TreeView : public QDockWidget {
class TreeView : public QDockWidget {
Q_OBJECT
public: