diff --git a/docs/qscintilla.md b/docs/qscintilla.md index 70ca8e0..9f6b931 100644 --- a/docs/qscintilla.md +++ b/docs/qscintilla.md @@ -4,7 +4,7 @@ To do this, first download the source archive from [`https://www.riverbankcomput Next, launch the *x64 Native Tools Command Prompt for VS 2022*, and cd into the directory that you extracted the archive to -Now, run `qmake` from your Qt's bin directory to configure it +Now, run `qmake src` from your Qt's bin directory to configure it Once that's done, build and install the project using `nmake install` diff --git a/editor/CMakeLists.txt b/editor/CMakeLists.txt index 089c5be..6050905 100644 --- a/editor/CMakeLists.txt +++ b/editor/CMakeLists.txt @@ -2,7 +2,7 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -find_package(Qt6 REQUIRED COMPONENTS Widgets Multimedia OpenGLWidgets REQUIRED) +find_package(Qt6 REQUIRED COMPONENTS Widgets OpenGLWidgets REQUIRED) find_package(QScintilla6 REQUIRED) set(PROJECT_SOURCES @@ -35,6 +35,59 @@ set(PROJECT_SOURCES ${TS_FILES} ) -qt_add_executable(editor ${PROJECT_SOURCES}) +qt_add_executable(editor MANUAL_FINALIZATION ${PROJECT_SOURCES}) target_include_directories(editor PRIVATE .) -target_link_libraries(editor PRIVATE openblocks Qt6::Widgets Qt6::Multimedia Qt6::OpenGLWidgets ${QSCINTILLA_LIBRARY}) \ No newline at end of file +target_link_libraries(editor PRIVATE openblocks Qt6::Widgets Qt6::OpenGLWidgets ${QSCINTILLA_LIBRARY}) + +# Copy assets +add_custom_command( + TARGET editor POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/assets + $/assets) + +# Copy Qt files +if (WIN32) + #include("${QT_DEPLOY_SUPPORT}") + + # Copy over QScintilla DLLs + # TODO: Use a better approach? + add_custom_command( + TARGET editor POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${QSCINTILLA_DLLS} $ + ) + + set(WINDEPLOYQT_OPTIONS + --dir $ + --translations en + --no-compiler-runtime + --no-opengl-sw # No sense adding opengl-sw given that hardware acceleration is necessary, anyway + --no-system-d3d-compiler + --plugindir $/qtplugins + # Also don't want to clutter with plugins, add only needed ones + ) + + # We split these into two commands because + # we might build a debug binary against a release qscintilla library + # TODO: Add other translations + add_custom_command( + TARGET editor POST_BUILD + COMMAND ${WINDEPLOYQT_EXECUTABLE} $ + ${WINDEPLOYQT_OPTIONS} + ) + + # Copy QScintilla dependencies too + add_custom_command( + TARGET editor POST_BUILD + COMMAND ${WINDEPLOYQT_EXECUTABLE} ${QSCINTILLA_DLLS} + ${WINDEPLOYQT_OPTIONS} + ) + + # Copy qt.conf to override default plugins location + add_custom_command( + TARGET editor POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/qt.conf $/qt.conf + ) +endif() + +qt_finalize_executable(editor) \ No newline at end of file