Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Move to VCPKG
Note: I consider this branch the next
master
branch for (hopefully) 2.6.0 release. Once everything is stable, this branch will replace themaster
branch.Here are the changes integrated (or to be integrated) into this branch:
Move to VCPKG
Use vcpkg instead of
mob
to obtain dependencies for uibase.mo2-cmake
(CMake utilities, oldcmake_common
),spdlog
andgtest
from VCPKGspdlog
from MO2 registry to removefmt
dependency and force use ofstd::format
iequals
andireplace_all
,boost-algorithm
to VCPKG dependency requires ~100 packages due to the way Boost is packaged with VCPKG, so this was substantially increasing build time foruibase
.iequals
andireplace_all
have been implemented and encapsulated.Proper CMake Targets
Refactor code to generate proper CMake targets, the goal is to be able to do
find_package(mo2-uibase)
to obtain proper targets to link to.In order to obtain "clean" targets, the following has been done:
include/uibase
directory at rootThe following can be used to configure, build and install
uibase
without external dependencies (except Qt):To use
uibase
in a CMake project, one can simply:install/lib/cmake
toCMAKE_PREFIX_PATH
(whereinstall
is the location set when configuringuibase
).find_package(mo2-uibase CONFIG REQUIRED)
to finduibase
uibase
withtarget_link_libraries(mytarget PRIVATE mo2::uibase)
Note: Since header files have bee reorganized, one should use
#include <uibase/XXX.h>
instead of#include <XXX.h>
(or#include <uibase/game_features/FFF.h>
for game features). To avoid having to update all existing projects, one can useset(MO2_CMAKE_DEPRECATED_UIBASE_INCLUDE ON)
beforefind_package(mo2-uibase)
to make all headers available.Automated Release on Tag
When a Github tag is published, a new release will automatically be made.
uibase
.version.rc
or something like that.