Use cmake to create VS project files.

Due to an upstream change in vcpkg that breaks the simple integration previously available with `vcpkg integrate install`, building using that setup method is no longer possible. In order to work correctly, cmake must instead be used to generate the VS project files, since that is able to integrate with vcpkg, since vcpkg also uses cmake to build all the library dependencies.

An additional benefit of this is that it will no longer be necessary to separately update the VS project files since it will read the same source_lists files as cmake (on linux) and scons do.

This also enables running the WML unit tests on Windows with this in order to confirm that a valid wesnoth.exe is in fact being generated as well as fixes building the boost unit tests.

The warning level for both release and debug builds are now at level three, the remaining warnings have been fixed, and therefore strict builds have been enabled - any warning will now cause the build to fail, just like for the linux jobs.

Known issues:
* The boost unit tests don't actually run successfully - they fail on CI at least with an exit code on 201 - however I don't know if this is a real problem or just a problem with running headless on CI.
* The debug build doesn't quite work since the executables are built against the non-debug dlls but cmake copies over the debug dlls into the output directory. For now this can be worked around by copying the release dlls into the debug directory.
* The instructions in INSTALL.md are not very good since I don't use Windows and thus can't write anything more detailed. Ideally someone who uses Windows can add more detailed step by step instructions at some point.

Fixes #5741
This commit is contained in:
Pentarctagon 2021-04-28 23:20:05 -05:00 committed by Pentarctagon
parent df41f13e41
commit b95d72f9c1
27 changed files with 561 additions and 9415 deletions

View file

@ -295,40 +295,6 @@ jobs:
# in the case of needing to recompile the vcpkg-created Windows dependencies, increment the cache-name and key for both Release and Debug
# this will create a brand new cache and recompile the vcpkg dependencies from scratch
windows-release:
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
with:
submodules: "recursive"
# - name: Cache object files
# uses: actions/cache@v2
# env:
# cache-name: windows-release-cache-master
# with:
# path: D:/a/wesnoth/vcpkg
# key: windows-master-N003
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
- name: DOS1
shell: cmd
run: |
git clone --shallow-since=2021-04-25 https://github.com/microsoft/vcpkg.git ../vcpkg
git -C ../vcpkg checkout a9b27ed5dffbf70b135eddb0c4729f3ca87f106c
%~dp0../wesnoth/vcpkg/bootstrap-vcpkg.bat
- name: DOS2
shell: cmd
run: |
%~dp0../wesnoth/vcpkg/vcpkg integrate install
%~dp0../wesnoth/vcpkg/vcpkg install sdl2:x64-windows sdl2-image:x64-windows sdl2-image[libjpeg-turbo]:x64-windows sdl2-mixer[libvorbis,dynamic-load]:x64-windows bzip2:x64-windows zlib:x64-windows pango:x64-windows cairo:x64-windows fontconfig:x64-windows libvorbis:x64-windows libogg:x64-windows boost-filesystem:x64-windows boost-iostreams:x64-windows boost-locale[icu]:x64-windows boost-random:x64-windows boost-regex[icu]:x64-windows boost-asio:x64-windows boost-program-options:x64-windows boost-system:x64-windows boost-bimap:x64-windows boost-multi-array:x64-windows boost-logic:x64-windows boost-format:x64-windows boost-scope-exit:x64-windows boost-circular-buffer:x64-windows boost-ptr-container:x64-windows
- name: DOS3
shell: cmd
run: |
MSBuild.exe projectfiles/VC16/wesnoth.sln -p:Configuration=Release -p:Platform=Win64
windows-debug:
runs-on: windows-2019
@ -337,38 +303,93 @@ jobs:
with:
submodules: "recursive"
# - name: Cache object files
# uses: actions/cache@v2
# env:
# cache-name: windows-debug-cache-master
# with:
# path: D:/a/wesnoth/vcpkg
# key: windows-master-N003
- name: Cache object files
id: windows-master-N007
uses: actions/cache@v2
with:
path: |
D:/a/wesnoth/vcpkg
D:/a/wesnoth/wesnoth/vcpkg_installed
key: windows-master-N007
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
- name: DOS1
- name: Build vcpkg
shell: cmd
run: |
git clone --shallow-since=2021-04-25 https://github.com/microsoft/vcpkg.git ../vcpkg
git -C ../vcpkg checkout a9b27ed5dffbf70b135eddb0c4729f3ca87f106c
%~dp0../wesnoth/vcpkg/bootstrap-vcpkg.bat
- name: DOS2
git clone --depth=1 https://github.com/microsoft/vcpkg.git D:/a/wesnoth/vcpkg
D:/a/wesnoth/vcpkg/bootstrap-vcpkg.bat
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v1.8
- name: Use cmake
run: |
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_GAME=true -DENABLE_SERVER=true -DENABLE_CAMPAIGN_SERVER=true -DENABLE_TESTS=true -DENABLE_MYSQL=false -DENABLE_NLS=false -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_TOOLCHAIN_FILE=D:/a/wesnoth/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_GENERATOR_PLATFORM=x64 -G "Visual Studio 16 2019" .
# delete buildtrees directory to free up space after cmake invokes vcpkg to build the dependencies
# otherwise the job was failing when trying to write a .obj file
# building vcpkg on the more spacious C drive didn't work since for some reason vcpkg decides to not create the pango/cairo pkgconfig files there
- name: Build wesnoth
shell: cmd
run: |
%~dp0../wesnoth/vcpkg/vcpkg integrate install
%~dp0../wesnoth/vcpkg/vcpkg install sdl2:x64-windows sdl2-image:x64-windows sdl2-image[libjpeg-turbo]:x64-windows sdl2-mixer[libvorbis,dynamic-load]:x64-windows bzip2:x64-windows zlib:x64-windows pango:x64-windows cairo:x64-windows fontconfig:x64-windows libvorbis:x64-windows libogg:x64-windows boost-filesystem:x64-windows boost-iostreams:x64-windows boost-locale[icu]:x64-windows boost-random:x64-windows boost-regex[icu]:x64-windows boost-asio:x64-windows boost-program-options:x64-windows boost-system:x64-windows boost-thread:x64-windows boost-bimap:x64-windows boost-multi-array:x64-windows boost-logic:x64-windows boost-format:x64-windows boost-scope-exit:x64-windows boost-circular-buffer:x64-windows boost-ptr-container:x64-windows
- name: DOS3
shell: cmd
run: |
MSBuild.exe projectfiles/VC16/wesnoth.sln -p:Configuration=Debug -p:Platform=Win64
rmdir /s /q D:\a\wesnoth\vcpkg\buildtrees
MSBuild.exe wesnoth.sln -p:Configuration=Debug
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Windows-Debug
path: |
D:/a/wesnoth/wesnoth/wesnoth.exe
D:/a/wesnoth/wesnoth/wesnothd.exe
D:/a/wesnoth/wesnoth/wesnoth.pdb
D:/a/wesnoth/wesnoth/wesnothd.pdb
D:/a/wesnoth/wesnoth/Debug/wesnoth.exe
D:/a/wesnoth/wesnoth/Debug/wesnothd.exe
D:/a/wesnoth/wesnoth/Debug/wesnoth.pdb
D:/a/wesnoth/wesnoth/Debug/wesnothd.pdb
windows-release:
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
with:
submodules: "recursive"
- name: Cache object files
id: windows-master-N007
uses: actions/cache@v2
with:
path: |
D:/a/wesnoth/vcpkg
D:/a/wesnoth/wesnoth/vcpkg_installed
key: windows-master-N007
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
- name: Build vcpkg
shell: cmd
run: |
git clone --depth=1 https://github.com/microsoft/vcpkg.git D:/a/wesnoth/vcpkg
D:/a/wesnoth/vcpkg/bootstrap-vcpkg.bat
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v1.8
- name: Use cmake
run: |
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GAME=true -DENABLE_SERVER=true -DENABLE_CAMPAIGN_SERVER=true -DENABLE_TESTS=true -DENABLE_MYSQL=false -DENABLE_NLS=false -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_TOOLCHAIN_FILE=D:/a/wesnoth/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_GENERATOR_PLATFORM=x64 -G "Visual Studio 16 2019" .
# delete buildtrees directory to free up space after cmake invokes vcpkg to build the dependencies
# otherwise the job was failing when trying to write a .obj file
# building vcpkg on the more spacious C drive didn't work since for some reason vcpkg decides to not create the pango/cairo pkgconfig files there
- name: Build wesnoth
shell: cmd
run: |
rmdir /s /q D:\a\wesnoth\vcpkg\buildtrees
MSBuild.exe wesnoth.sln -p:Configuration=Release
- name: Run WML unit tests
shell: cmd
run: |
python run_wml_tests -g -c -t 20 -p D:/a/wesnoth/wesnoth/Release/wesnoth.exe

25
.gitignore vendored
View file

@ -49,25 +49,16 @@ projectfiles/**/*_build_log.html
projectfiles/**/*objs*
# Visual Studio
projectfiles/VC*
!projectfiles/VC16
projectfiles/VC*/.vs/
projectfiles/VC*/*.vc.*db
projectfiles/VC*/*.sdf
projectfiles/VC*/*.suo
projectfiles/VC*/*.aps
projectfiles/VC*/*.user
ALL_BUILD.vcproj
INSTALL.vcproj
PACKAGE.vcproj
ZERO_CHECK.vcproj
uninstall.vcproj
*.vcproj.*.user
src/**/*.vcproj
/WindowsTimeout.ilk
/WindowsTimeout.pdb
.vscode
/.vs
vcpkg_installed/
*.vcxproj
*.vcxproj.filters
doc/**/*.vcxproj
doc/**/*.vcxproj.filters
src/**/*.vcxproj
src/**/*.vcxproj.filters
vcpkg-manifest-install.log
# CLion
/.idea

View file

@ -73,36 +73,35 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
if(NOT APPLE)
find_package(Crypto 1.0 REQUIRED)
find_package(OpenSSL 1.0 REQUIRED)
else()
set(CRYPTO_LIBRARY "-framework Security")
set(OPENSSL_CRYPTO_LIBRARY "-framework Security")
endif()
find_package(Boost ${BOOST_VERSION} REQUIRED COMPONENTS iostreams
program_options regex system thread random coroutine)
find_package(Boost ${BOOST_VERSION} REQUIRED COMPONENTS iostreams program_options regex system thread random coroutine)
# no, gettext executables are not required when NLS is deactivated
find_package(Gettext)
find_package(X11)
# needed to get some SDL2 defines in... (as of rev31694 -D_GNU_SOURCE=1 is required!)
if(NOT MINGW)
set(SDL2_CONFIG "sdl2-config" CACHE STRING "Path to sdl2-config script")
exec_program(${SDL2_CONFIG} ARGS "--cflags" OUTPUT_VARIABLE SDL2_CFLAGS)
add_definitions(${SDL2_CFLAGS})
else()
# equivalent to sdl2-config --cflags --libs
# since cmake cannot execute sdl2-config in msys2 shell
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -I/mingw64/include/SDL2 -Dmain=SDL_main -L/mingw64/lib -lmingw32 -lSDL2main -lSDL2 -mwindows)
# MinGW system libraries that should be linked to wesnoth
set(MINGW_SYSTEM_LIBS wsock32 ws2_32 shlwapi winmm)
endif()
if(NOT WIN32)
# Use the safer `mkstemp' instead of `tmpnam' on POSIX systems.
add_definitions(-DLUA_USE_POSIX)
# needed to get some SDL2 defines in... (as of rev31694 -D_GNU_SOURCE=1 is required!)
if(NOT MINGW)
set(SDL2_CONFIG "sdl2-config" CACHE STRING "Path to sdl2-config script")
exec_program(${SDL2_CONFIG} ARGS "--cflags" OUTPUT_VARIABLE SDL2_CFLAGS)
add_definitions(${SDL2_CFLAGS})
else()
# equivalent to sdl2-config --cflags --libs
# since cmake cannot execute sdl2-config in msys2 shell
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -I/mingw64/include/SDL2 -Dmain=SDL_main -L/mingw64/lib -lmingw32 -lSDL2main -lSDL2 -mwindows)
# MinGW system libraries that should be linked to wesnoth
set(MINGW_SYSTEM_LIBS wsock32 ws2_32 shlwapi winmm)
endif()
# Use the safer `mkstemp' instead of `tmpnam' on POSIX systems.
add_definitions(-DLUA_USE_POSIX)
endif(NOT WIN32)
#check for some compiler/arch specific things and export defines accordingly...
@ -113,6 +112,7 @@ include(SearchForStuff)
# if nothing was selected
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release Profile RelWithDebInfo MinSizeRel." FORCE)
message("No build type specified, defaulting to Release")
endif(NOT CMAKE_BUILD_TYPE)
if(NOT DEFINED ENABLE_DISPLAY_REVISION)
@ -120,10 +120,7 @@ if(NOT DEFINED ENABLE_DISPLAY_REVISION)
# fail and should be disabled by default. If inside a repository enable
# the display of revision numbers by default.
execute_process(
COMMAND
${CMAKE_SOURCE_DIR}/utils/autorevision.sh
-t h
> ${CMAKE_CURRENT_BINARY_DIR}/revision.dummy
COMMAND ${CMAKE_SOURCE_DIR}/utils/autorevision.sh -t h > ${CMAKE_CURRENT_BINARY_DIR}/revision.dummy
WORKING_DIRECTORY
${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE
@ -149,14 +146,6 @@ option(
${DEFAULT_ENABLE_DISPLAY_REVISION}
)
# The use of shared libraries makes compilation debug versions faster but
# results in extra shared libraries. For installation this is not practical
# since the libraries need to be given SONAMES and kept in sync. Therefore
# installation is not supported for this option and will probably fail.
set(ENABLE_SHARED_LIBRARIES OFF CACHE BOOL "Enables shared libraries, this option is meant for development only, installation is *NOT* supported")
mark_as_advanced(on ENABLE_SHARED_LIBRARIES)
if(UNIX AND NOT APPLE AND NOT CYGWIN)
option(ENABLE_DESKTOP_ENTRY "enable installation of desktop entry files" ON)
endif(UNIX AND NOT APPLE AND NOT CYGWIN)
@ -187,297 +176,290 @@ set(BINARY_PREFIX "" CACHE STRING "Prefix in front of all binaries")
### Set the environment compiler flags.
if(CONFIGURED)
# The CONFIGURED flag was replaced when trunk `was' 1.11, before the release of 1.11.0
message("Builed files depending on 'CONFIGURED' found, please regenerate your build files.")
set(CXX_FLAGS_USER
"${CMAKE_CXX_FLAGS}"
CACHE
STRING
"The CXXFLAGS environment variable used for the initial generation."
FORCE
)
unset(CONFIGURED CACHE)
endif(CONFIGURED)
if(NOT WIN32)
if(NOT DEFINED CXX_FLAGS_USER)
if(NOT DEFINED CXX_FLAGS_USER)
MESSAGE(STATUS "Environment compiler flags set to »${CXX_FLAGS_USER}«")
set(CXX_FLAGS_USER
"$ENV{CXXFLAGS}"
CACHE
STRING
"The CXXFLAGS environment variable used for the initial generation."
FORCE
)
message(STATUS "Environment compiler flags set to »${CXX_FLAGS_USER}«")
set(CXX_FLAGS_USER
"$ENV{CXXFLAGS}"
CACHE
STRING
"The CXXFLAGS environment variable used for the initial generation."
FORCE
)
endif(NOT DEFINED CXX_FLAGS_USER)
endif(NOT DEFINED CXX_FLAGS_USER)
set(COMPILER_FLAGS "-Wall -Wextra -Werror=non-virtual-dtor -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wold-style-cast -Wtrampolines")
set(COMPILER_FLAGS "-Wall -Wextra -Werror=non-virtual-dtor -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wold-style-cast -Wtrampolines")
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Qunused-arguments -Wno-unknown-warning-option -Wmismatched-tags -Wno-conditional-uninitialized -Wno-unused-lambda-capture")
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Qunused-arguments -Wno-unknown-warning-option -Wmismatched-tags -Wno-conditional-uninitialized -Wno-unused-lambda-capture")
endif()
### Set strict compiler flags.
if(ENABLE_STRICT_COMPILATION)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Werror")
endif(ENABLE_STRICT_COMPILATION)
if(ENABLE_STRICT_COMPILATION)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Werror")
endif(ENABLE_STRICT_COMPILATION)
### Set pedantic compiler flags.
if(ENABLE_PEDANTIC_COMPILATION)
if(ENABLE_PEDANTIC_COMPILATION)
set(CXX_FLAGS_PEDANTIC_COMPILATION "-Wlogical-op -Wmissing-declarations -Wredundant-decls -Wctor-dtor-privacy -Wdouble-promotion -Wuseless-cast -Wnoexcept")
set(CXX_FLAGS_PEDANTIC_COMPILATION "-Wlogical-op -Wmissing-declarations -Wredundant-decls -Wctor-dtor-privacy -Wdouble-promotion -Wuseless-cast -Wnoexcept")
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CXX_FLAGS_PEDANTIC_COMPILATION "${CXX_FLAGS_PEDANTIC_COMPILATION} -Wdocumentation -Wno-documentation-deprecated-sync")
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CXX_FLAGS_PEDANTIC_COMPILATION "${CXX_FLAGS_PEDANTIC_COMPILATION} -Wdocumentation -Wno-documentation-deprecated-sync")
endif()
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${CXX_FLAGS_PEDANTIC_COMPILATION}")
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${CXX_FLAGS_PEDANTIC_COMPILATION}")
endif(ENABLE_PEDANTIC_COMPILATION)
endif(ENABLE_PEDANTIC_COMPILATION)
# check for sanitizer options
if(SANITIZE)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=${SANITIZE}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${SANITIZE}")
# manually disable some optimizations to get better stacktraces if sanitizers are used
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fno-omit-frame-pointer -fno-optimize-sibling-calls")
endif(SANITIZE)
if(SANITIZE)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=${SANITIZE}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${SANITIZE}")
# manually disable some optimizations to get better stacktraces if sanitizers are used
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fno-omit-frame-pointer -fno-optimize-sibling-calls")
endif(SANITIZE)
### Set the final compiler flags.
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${CXX_FLAGS_USER}")
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${CXX_FLAGS_USER}")
if(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "${COMPILER_FLAGS}")
message(STATUS "CMake compiler flags set to »${COMPILER_FLAGS}«")
set(CMAKE_CXX_FLAGS
"${COMPILER_FLAGS}"
CACHE
STRING
"Global flags used by the CXX compiler during all builds."
FORCE
)
endif(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "${COMPILER_FLAGS}")
if(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "${COMPILER_FLAGS}")
MESSAGE(STATUS "CMake compiler flags set to »${COMPILER_FLAGS}«")
set(CMAKE_CXX_FLAGS
"${COMPILER_FLAGS}"
CACHE
STRING
"Global flags used by the CXX compiler during all builds."
FORCE
)
endif(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "${COMPILER_FLAGS}")
# #
# Determine optimization level
# #
if(NOT OPT)
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
set(CMAKE_C_FLAGS_RELEASE "-O3")
if(NOT OPT)
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
set(CMAKE_C_FLAGS_RELEASE "-O3")
set(CMAKE_CXX_FLAGS_DEBUG "-O0")
set(CMAKE_C_FLAGS_DEBUG "-O0")
set(CMAKE_CXX_FLAGS_DEBUG "-O0")
set(CMAKE_C_FLAGS_DEBUG "-O0")
if(PROFILER STREQUAL "perf")
set(CMAKE_CXX_FLAGS_PROFILE "-Og")
set(CMAKE_C_FLAGS_PROFILE "-Og")
else(PROFILER STREQUAL "perf")
set(CMAKE_CXX_FLAGS_PROFILE "-O0")
set(CMAKE_C_FLAGS_PROFILE "-O0")
endif(PROFILER STREQUAL "perf")
else(NOT OPT)
set(CMAKE_CXX_FLAGS_RELEASE "${OPT}")
set(CMAKE_C_FLAGS_RELEASE "${OPT}")
if(PROFILER STREQUAL "perf")
set(CMAKE_CXX_FLAGS_PROFILE "-Og")
set(CMAKE_C_FLAGS_PROFILE "-Og")
else(PROFILER STREQUAL "perf")
set(CMAKE_CXX_FLAGS_PROFILE "-O0")
set(CMAKE_C_FLAGS_PROFILE "-O0")
endif(PROFILER STREQUAL "perf")
else(NOT OPT)
set(CMAKE_CXX_FLAGS_RELEASE "${OPT}")
set(CMAKE_C_FLAGS_RELEASE "${OPT}")
set(CMAKE_CXX_FLAGS_DEBUG "${OPT}")
set(CMAKE_C_FLAGS_DEBUG "${OPT}")
set(CMAKE_CXX_FLAGS_DEBUG "${OPT}")
set(CMAKE_C_FLAGS_DEBUG "${OPT}")
set(CMAKE_CXX_FLAGS_PROFILE "${OPT}")
set(CMAKE_C_FLAGS_PROFILE "${OPT}")
endif(NOT OPT)
set(CMAKE_CXX_FLAGS_PROFILE "${OPT}")
set(CMAKE_C_FLAGS_PROFILE "${OPT}")
endif(NOT OPT)
# check for hardening options
if(HARDEN AND NOT WIN32)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE -fstack-protector-strong")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE -fstack-protector-strong")
if(HARDEN)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE -fstack-protector-strong")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE -fstack-protector-strong")
if(APPLE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -Wl,-pie")
else()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie -Wl,-z,relro,-z,now")
endif()
if(APPLE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -Wl,-pie")
else()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie -Wl,-z,relro,-z,now")
endif()
if(NOT CMAKE_CXX_FLAGS_DEBUG STREQUAL "-O0")
add_definitions(-D_FORTIFY_SOURCE=2)
endif()
endif(HARDEN AND NOT WIN32)
if(NOT CMAKE_CXX_FLAGS_DEBUG STREQUAL "-O0")
add_definitions(-D_FORTIFY_SOURCE=2)
endif()
endif(HARDEN)
if(UNIX AND NOT CMAKE_COMPILER_IS_GNUCXX)
# Assume the compiler is the clang compiler.
set(CMAKE_EXE_LINKER_FLAGS "-lstdc++ -lm ${CMAKE_EXE_LINKER_FLAGS}")
endif(UNIX AND NOT CMAKE_COMPILER_IS_GNUCXX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_EXE_LINKER_FLAGS "-lstdc++ -lm ${CMAKE_EXE_LINKER_FLAGS}")
endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(NOT WIN32)
add_definitions(-DWESNOTH_PATH="${CMAKE_INSTALL_FULL_DATADIR}/${DATADIRNAME}")
endif(NOT WIN32)
if(X11_FOUND)
add_definitions(-D_X11)
endif(X11_FOUND)
if(X11_FOUND)
add_definitions(-D_X11)
endif(X11_FOUND)
add_definitions(-DLOCALEDIR="${LOCALEDIR}")
# -DNDEBUG is automatically added to all release build types, so manually remove this define from the related variables
RemoveFlag(CMAKE_CXX_FLAGS_RELWITHDEBINFO CACHE "-DNDEBUG" "Default C++ flags for RelWithDebInfo")
RemoveFlag(CMAKE_C_FLAGS_RELWITHDEBINFO CACHE "-DNDEBUG" "Default C flags for RelWithDebInfo")
RemoveFlag(CMAKE_CXX_FLAGS_MINSIZEREL CACHE "-DNDEBUG" "Default C++ flags for MinSizeRel")
RemoveFlag(CMAKE_C_FLAGS_MINSIZEREL CACHE "-DNDEBUG" "Default C flags for MinSizeRel")
add_definitions(-DLOCALEDIR="${LOCALEDIR}")
# -rdynamic is automatically added, but we don't need it, and it increases the executable size
RemoveFlag(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS SCRIPT "-rdynamic" "")
RemoveFlag(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS SCRIPT "-rdynamic" "")
RemoveFlag(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS SCRIPT "-rdynamic" "")
RemoveFlag(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS SCRIPT "-rdynamic" "")
# -DNDEBUG is automatically added to all release build types, so manually remove this define from the related variables
RemoveFlag(CMAKE_CXX_FLAGS_RELWITHDEBINFO CACHE "-DNDEBUG" "Default C++ flags for RelWithDebInfo")
RemoveFlag(CMAKE_C_FLAGS_RELWITHDEBINFO CACHE "-DNDEBUG" "Default C flags for RelWithDebInfo")
RemoveFlag(CMAKE_CXX_FLAGS_MINSIZEREL CACHE "-DNDEBUG" "Default C++ flags for MinSizeRel")
RemoveFlag(CMAKE_C_FLAGS_MINSIZEREL CACHE "-DNDEBUG" "Default C flags for MinSizeRel")
# #
# Start determining options for Release build
# #
# reset the base Release build option
MESSAGE("Replacing default flags used for Release build with ${OPT} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "" CACHE STRING "" FORCE)
MESSAGE("Replacing default flags used for Release build with ${OPT} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "" CACHE STRING "" FORCE)
# set the arch to use for Release build if provided
if(ARCH)
MESSAGE("adding -march=${ARCH} to Release build")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=${ARCH}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -march=${ARCH}" CACHE STRING "Release build flags" FORCE)
endif(ARCH)
# add pentiumpro arch for windows builds with -O3 if no other arch provided, otherwise resulting executable may not work
if(WIN32 AND NOT ARCH)
MESSAGE("WIN32 and no arch provided, defaulting to pentiumpro")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=pentiumpro" CACHE STRING "Release build flags" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -march=pentiumpro" CACHE STRING "Release build flags" FORCE)
endif(WIN32 AND NOT ARCH)
if(ARCH)
MESSAGE("adding -march=${ARCH} to Release build")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=${ARCH}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -march=${ARCH}" CACHE STRING "Release build flags" FORCE)
endif(ARCH)
# PGO and LTO for GCC
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(PGO_DATA STREQUAL "generate")
MESSAGE("Generating PGO data")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-generate=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags generating PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-generate=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags generating PGO data" FORCE)
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(PGO_DATA STREQUAL "generate")
MESSAGE("Generating PGO data")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-generate=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags generating PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-generate=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags generating PGO data" FORCE)
endif()
if(PGO_DATA STREQUAL "use")
MESSAGE("Using PGO data from previous runs")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-correction -fprofile-use=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags for using PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-correction -fprofile-use=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags for using PGO data" FORCE)
endif()
if(PGO_DATA STREQUAL "use")
MESSAGE("Using PGO data from previous runs")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-correction -fprofile-use=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags for using PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-correction -fprofile-use=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags for using PGO data" FORCE)
endif()
if(ENABLE_LTO)
if(NOT LTO_JOBS)
MESSAGE("LTO_JOBS not set, defaulting to 1")
set(LTO_JOBS "1" CACHE STRING "Number of threads to use for LTO with gcc" FORCE)
endif(NOT LTO_JOBS)
if(ENABLE_LTO)
if(NOT LTO_JOBS)
MESSAGE("LTO_JOBS not set, defaulting to 1")
set(LTO_JOBS "1" CACHE STRING "Number of threads to use for LTO with gcc" FORCE)
endif(NOT LTO_JOBS)
MESSAGE("added -flto=${LTO_JOBS} to Release build")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto=${LTO_JOBS}" CACHE STRING "Release build flags with LTO" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -flto=${LTO_JOBS}" CACHE STRING "Release build flags with LTO" FORCE)
MESSAGE("added -flto=${LTO_JOBS} to Release build")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto=${LTO_JOBS}" CACHE STRING "Release build flags with LTO" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -flto=${LTO_JOBS}" CACHE STRING "Release build flags with LTO" FORCE)
MESSAGE("Using GCC gold linker")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -fuse-ld=gold -Wno-stringop-overflow" CACHE STRING "" FORCE)
endif(ENABLE_LTO)
endif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
MESSAGE("Using GCC gold linker")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -fuse-ld=gold -Wno-stringop-overflow" CACHE STRING "" FORCE)
endif(ENABLE_LTO)
endif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# PGO and LTO for Clang
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(PGO_DATA STREQUAL "generate")
MESSAGE("Generating PGO data")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-instr-generate=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth-%p.profraw" CACHE STRING "Release build flags generating PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-instr-generate=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth-%p.profraw" CACHE STRING "Release build flags generating PGO data" FORCE)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(PGO_DATA STREQUAL "generate")
MESSAGE("Generating PGO data")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-instr-generate=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth-%p.profraw" CACHE STRING "Release build flags generating PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-instr-generate=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth-%p.profraw" CACHE STRING "Release build flags generating PGO data" FORCE)
endif()
if(PGO_DATA STREQUAL "use")
MESSAGE("Using PGO data from previous runs")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-instr-use=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth.profdata" CACHE STRING "Release build flags for using PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-instr-use=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth.profdata" CACHE STRING "Release build flags for using PGO data" FORCE)
endif()
if(PGO_DATA STREQUAL "use")
MESSAGE("Using PGO data from previous runs")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-instr-use=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth.profdata" CACHE STRING "Release build flags for using PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-instr-use=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth.profdata" CACHE STRING "Release build flags for using PGO data" FORCE)
endif()
if(ENABLE_LTO)
MESSAGE("added -flto=thin to Release build")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto=thin" CACHE STRING "Release build flags with LTO" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -flto=thin" CACHE STRING "Release build flags with LTO" FORCE)
if(ENABLE_LTO)
MESSAGE("added -flto=thin to Release build")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto=thin" CACHE STRING "Release build flags with LTO" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -flto=thin" CACHE STRING "Release build flags with LTO" FORCE)
MESSAGE("Using Clang LLD linker")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -fuse-ld=lld" CACHE STRING "Linker flag for building with LTO and clang" FORCE)
endif(ENABLE_LTO)
endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
MESSAGE("Using Clang LLD linker")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -fuse-ld=lld" CACHE STRING "Linker flag for building with LTO and clang" FORCE)
endif(ENABLE_LTO)
endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# set CMAKE_AR and CMAKE_RANLIB to use LTO-enabled variants if LTO is enabled
if(ENABLE_LTO)
MESSAGE("Using gcc-ar and gcc-ranlib")
find_program(LTO_AR NAMES gcc-ar)
find_program(LTO_RANLIB NAMES gcc-ranlib)
set(CMAKE_AR "${LTO_AR}" CACHE STRING "Supports LTO" FORCE)
set(CMAKE_RANLIB "${LTO_RANLIB}" CACHE STRING "Supports LTO" FORCE)
endif()
MARK_AS_ADVANCED(LTO_AR LTO_RANLIB NON_LTO_AR NON_LTO_RANLIB)
if(ENABLE_LTO)
MESSAGE("Using gcc-ar and gcc-ranlib")
find_program(LTO_AR NAMES gcc-ar)
find_program(LTO_RANLIB NAMES gcc-ranlib)
set(CMAKE_AR "${LTO_AR}" CACHE STRING "Supports LTO" FORCE)
set(CMAKE_RANLIB "${LTO_RANLIB}" CACHE STRING "Supports LTO" FORCE)
endif()
MARK_AS_ADVANCED(LTO_AR LTO_RANLIB NON_LTO_AR NON_LTO_RANLIB)
# add in extra flags
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_RELEASE}")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_RELEASE}")
# clean the pgo data
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_SOURCE_DIR}/pgo_data/")
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_SOURCE_DIR}/pgo_data/")
# #
# End determining options for Release build
# Start setting options for Debug build
# #
# replace the default Debug flag of -g with -O0 -DDEBUG -ggdb3
# this matches the flags of scons' debug build
MESSAGE("Replacing flags used for Debug build ${OPT} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}" CACHE STRING "change cmake's Debug flags to match scons' flags" FORCE)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}" CACHE STRING "change cmake's Debug flags to match scons' flags" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_DEBUG}" CACHE STRING "" FORCE)
# replace the default Debug flag of -g with -O0 -DDEBUG -ggdb3
# this matches the flags of scons' debug build
MESSAGE("Replacing flags used for Debug build ${OPT} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}" CACHE STRING "change cmake's Debug flags to match scons' flags" FORCE)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}" CACHE STRING "change cmake's Debug flags to match scons' flags" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_DEBUG}" CACHE STRING "" FORCE)
# adds GLIBCXX_DEBUG definitions
if(GLIBCXX_DEBUG)
MESSAGE("Defining _GLIBCXX_DEBUG and _GLIBCXX_DEBUG_PEDANTIC")
add_definitions(-D_GLIBCXX_DEBUG)
add_definitions(-D_GLIBCXX_DEBUG_PEDANTIC)
endif(GLIBCXX_DEBUG)
if(GLIBCXX_DEBUG)
MESSAGE("Defining _GLIBCXX_DEBUG and _GLIBCXX_DEBUG_PEDANTIC")
add_definitions(-D_GLIBCXX_DEBUG)
add_definitions(-D_GLIBCXX_DEBUG_PEDANTIC)
endif(GLIBCXX_DEBUG)
# #
# End setting options for Debug build
# Start setting options for Profile build
# #
if(PROFILER STREQUAL "gprof" OR NOT PROFILER)
MESSAGE("Profiler is gprof")
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -pg ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gprof" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -pg ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gprof" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()
if(PROFILER STREQUAL "gprof" OR NOT PROFILER)
MESSAGE("Profiler is gprof")
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -pg ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gprof" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -pg ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gprof" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()
if(PROFILER STREQUAL "gcov")
MESSAGE("Profiler is gcov")
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -fprofile-arcs -ftest-coverage ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gcov" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -fprofile-arcs -ftest-coverage ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gcov" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()
if(PROFILER STREQUAL "gcov")
MESSAGE("Profiler is gcov")
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -fprofile-arcs -ftest-coverage ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gcov" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -fprofile-arcs -ftest-coverage ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gcov" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()
if(PROFILER STREQUAL "gperftools")
MESSAGE("Profiler is gperftools")
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gperftools" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gperftools" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "-Wl,--no-as-needed,-lprofiler ${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()
if(PROFILER STREQUAL "perf")
MESSAGE("Profiler is perf")
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -ggdb ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with perf" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -ggdb ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with perf" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()
if(PROFILER STREQUAL "gperftools")
MESSAGE("Profiler is gperftools")
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gperftools" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gperftools" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "-Wl,--no-as-needed,-lprofiler ${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()
if(PROFILER STREQUAL "perf")
MESSAGE("Profiler is perf")
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -ggdb ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with perf" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -ggdb ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with perf" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()
# #
# End setting options for Profile build
# #
else()
set(CMAKE_CXX_FLAGS "/W3 /WX /wd4503 /wd4351 /wd4250 /wd4244 /wd4267 /we4239 /wd4275 /EHsc" CACHE STRING "Global flags used by the CXX compiler during all builds." FORCE)
add_definitions(-D_WIN32_WINNT=_WIN32_WINNT_WIN7 -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DNOMINMAX)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG_LUA")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:MSVCRT")
# -DNDEBUG is automatically added to all release build types, so manually remove this define from the related variables
RemoveFlag(CMAKE_CXX_FLAGS_RELEASE CACHE "/DNDEBUG" "Default C++ flags for RELEASE")
RemoveFlag(CMAKE_C_FLAGS_RELEASE CACHE "/DNDEBUG" "Default C flags for RELEASE")
RemoveFlag(CMAKE_CXX_FLAGS_RELWITHDEBINFO CACHE "/DNDEBUG" "Default C++ flags for RelWithDebInfo")
RemoveFlag(CMAKE_C_FLAGS_RELWITHDEBINFO CACHE "/DNDEBUG" "Default C flags for RelWithDebInfo")
RemoveFlag(CMAKE_CXX_FLAGS_MINSIZEREL CACHE "/DNDEBUG" "Default C++ flags for MinSizeRel")
RemoveFlag(CMAKE_C_FLAGS_MINSIZEREL CACHE "/DNDEBUG" "Default C flags for MinSizeRel")
endif(NOT WIN32)
# When the path starts with a / on a Unix system it's an absolute path.
# This means that on Windows the path used is always relative.
@ -513,8 +495,6 @@ endif(ENABLE_DEBUG_WINDOW_LAYOUT)
#
if(ENABLE_GAME OR ENABLE_TESTS)
# find_package(OpenGL REQUIRED)
# find_package(GLEW REQUIRED)
find_package(SDL2 2.0.8 REQUIRED)
find_package(SDL2_image 2.0.2 REQUIRED)
find_package(SDL2_mixer 2.0.0 REQUIRED)
@ -523,7 +503,9 @@ if(ENABLE_GAME OR ENABLE_TESTS)
pkg_check_modules(CAIRO REQUIRED cairo>=1.10)
pkg_check_modules(PANGOCAIRO REQUIRED pangocairo>=1.22.0)
pkg_check_modules(FONTCONFIG REQUIRED fontconfig>=2.4.1)
pkg_check_modules(SYSTEMD systemd)
if(NOT WIN32)
pkg_check_modules(SYSTEMD systemd)
endif(NOT WIN32)
endif(ENABLE_GAME OR ENABLE_TESTS)
if(ENABLE_TESTS)

View file

@ -68,7 +68,7 @@ rebuild Wesnoth frequently (i.e. for development and testing).
See [here](https://github.com/wesnoth/wesnoth/blob/master/projectfiles/Xcode/README.md) for instructions on using Xcode.
### Windows
See [here](https://github.com/wesnoth/wesnoth/blob/master/projectfiles/VC16/README.md) for instructions on using Visual Studio 2019.
Wesnoth uses CMake for project configuration and vcpkg for installing dependencies. See [here](https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio) for information on using Visual Studio with cmake. The first time it's run, vcpkg will build all the required dependencies which may take over an hour, however it will only need to be done once.
## SCons Build

View file

@ -1,7 +0,0 @@
# Building with VS2019
* Install [vcpkg](https://github.com/Microsoft/vcpkg).
* Make vcpkg available to Visual Studio with `vcpkg integrate install` (may require admin rights).
* Use vcpkg to install all dependencies:
```vcpkg install sdl2:x64-windows sdl2-image:x64-windows sdl2-image[libjpeg-turbo]:x64-windows sdl2-mixer[libvorbis,dynamic-load]:x64-windows bzip2:x64-windows zlib:x64-windows pango:x64-windows cairo:x64-windows fontconfig:x64-windows libvorbis:x64-windows libogg:x64-windows boost-filesystem:x64-windows boost-iostreams:x64-windows boost-locale[icu]:x64-windows boost-random:x64-windows boost-regex[icu]:x64-windows boost-asio:x64-windows boost-program-options:x64-windows boost-system:x64-windows boost-bimap:x64-windows boost-multi-array:x64-windows boost-logic:x64-windows boost-format:x64-windows boost-coroutine:x64-windows boost-context:x64-windows boost-circular-buffer:x64-windows boost-scope-exit:x64-windows boost-ptr-container:x64-windows```
* The above dependencies were taken from github actions CI script.
* Given the above will be compiling both the release and, as available, the debug versions of all those libraries and their dependencies, this may take an hour or more. The CI script works around this somewhat by aliasing `make` to `make -j4` in order to force four threads to be used rather than just one thread.

View file

@ -1,128 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}</ProjectGuid>
<RootNamespace>campaignd</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IntDir>$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)\..\..\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)\..\..\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\src</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_WIN32_WINNT=_WIN32_WINNT_WIN7;_SCL_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244</DisableSpecificWarnings>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>
</AdditionalLibraryDirectories>
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\src</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_WIN32_WINNT=_WIN32_WINNT_WIN7;_SCL_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4244</DisableSpecificWarnings>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>
</AdditionalLibraryDirectories>
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ProjectReference Include="wesnothlib.vcxproj">
<Project>{4a16638b-127b-4ae8-8e0b-4b211b96f976}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\addon\validation.hpp" />
<ClInclude Include="..\..\src\hash.hpp" />
<ClInclude Include="..\..\src\server\campaignd\addon_utils.hpp" />
<ClInclude Include="..\..\src\server\campaignd\auth.hpp" />
<ClInclude Include="..\..\src\server\campaignd\blacklist.hpp" />
<ClInclude Include="..\..\src\server\campaignd\control.hpp" />
<ClInclude Include="..\..\src\server\campaignd\fs_commit.hpp" />
<ClInclude Include="..\..\src\server\campaignd\options.hpp" />
<ClInclude Include="..\..\src\server\campaignd\server.hpp" />
<ClInclude Include="..\..\src\server\common\server_base.hpp" />
<ClInclude Include="..\..\src\server\common\simple_wml.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\addon\validation.cpp">
<ObjectFileName>$(IntDir)Addon\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\hash.cpp" />
<ClCompile Include="..\..\src\server\campaignd\addon_utils.cpp" />
<ClCompile Include="..\..\src\server\campaignd\auth.cpp" />
<ClCompile Include="..\..\src\server\campaignd\blacklist.cpp" />
<ClCompile Include="..\..\src\server\campaignd\fs_commit.cpp" />
<ClCompile Include="..\..\src\server\campaignd\options.cpp" />
<ClCompile Include="..\..\src\server\campaignd\server.cpp" />
<ClCompile Include="..\..\src\server\common\server_base.cpp" />
<ClCompile Include="..\..\src\server\common\simple_wml.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -1,80 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Addon">
<UniqueIdentifier>{3f44d190-c2f6-4d26-9902-e9f9452dac22}</UniqueIdentifier>
</Filter>
<Filter Include="Server">
<UniqueIdentifier>{4053cbc0-8a41-470e-aa62-45ea801ed834}</UniqueIdentifier>
</Filter>
<Filter Include="Server\Campaignd">
<UniqueIdentifier>{2bc282db-c405-4e4f-8b9f-b8c35b9bc747}</UniqueIdentifier>
</Filter>
<Filter Include="Server\Common">
<UniqueIdentifier>{26b90402-e305-41af-9f6a-01fdce84d1ae}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\addon\validation.hpp">
<Filter>Addon</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\campaignd\addon_utils.hpp">
<Filter>Server\Campaignd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\campaignd\blacklist.hpp">
<Filter>Server\Campaignd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\campaignd\control.hpp">
<Filter>Server\Campaignd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\campaignd\fs_commit.hpp">
<Filter>Server\Campaignd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\campaignd\server.hpp">
<Filter>Server\Campaignd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\server_base.hpp">
<Filter>Server\Common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\simple_wml.hpp">
<Filter>Server\Common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\hash.hpp" />
<ClInclude Include="..\..\src\server\campaignd\auth.hpp">
<Filter>Server\Campaignd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\campaignd\options.hpp">
<Filter>Server\Campaignd</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\addon\validation.cpp">
<Filter>Addon</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\campaignd\addon_utils.cpp">
<Filter>Server\Campaignd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\campaignd\blacklist.cpp">
<Filter>Server\Campaignd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\campaignd\fs_commit.cpp">
<Filter>Server\Campaignd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\campaignd\server.cpp">
<Filter>Server\Campaignd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\common\server_base.cpp">
<Filter>Server\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\common\simple_wml.cpp">
<Filter>Server\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\hash.cpp" />
<ClCompile Include="..\..\src\server\campaignd\auth.cpp">
<Filter>Server\Campaignd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\campaignd\options.cpp">
<Filter>Server\Campaignd</Filter>
</ClCompile>
</ItemGroup>
</Project>

View file

@ -1,9 +0,0 @@
Files in src/ which have one or more warnings file-specifically deactivated for the Debug configuration.
These warnings are thrown due to included header files (mostly boost ones),
since they apparently don't compile using warnlevel 4.
game
network_asio
serialization/binary_or_text
serialization/parser
server/common/simple_wml

View file

@ -1,198 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDEBUG|x64">
<Configuration>ReleaseDEBUG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{01AE7104-A4B1-428E-BA7C-460FE656AE5C}</ProjectGuid>
<RootNamespace>lualib</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>UninitializedLocalUsageCheck</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>true</OpenMPSupport>
<WarningLevel>TurnOffAllWarnings</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ForcedIncludeFiles>../src/wesnoth_lua_config.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<OpenMPSupport>true</OpenMPSupport>
<WarningLevel>TurnOffAllWarnings</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ForcedIncludeFiles>../src/wesnoth_lua_config.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<OpenMPSupport>true</OpenMPSupport>
<WarningLevel>TurnOffAllWarnings</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ForcedIncludeFiles>../src/wesnoth_lua_config.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\lua\lapi.cpp" />
<ClCompile Include="..\..\src\lua\lauxlib.cpp" />
<ClCompile Include="..\..\src\lua\lbaselib.cpp" />
<ClCompile Include="..\..\src\lua\lcode.cpp" />
<ClCompile Include="..\..\src\lua\lcorolib.cpp" />
<ClCompile Include="..\..\src\lua\lctype.cpp" />
<ClCompile Include="..\..\src\lua\ldblib.cpp" />
<ClCompile Include="..\..\src\lua\ldebug.cpp" />
<ClCompile Include="..\..\src\lua\ldo.cpp" />
<ClCompile Include="..\..\src\lua\ldump.cpp" />
<ClCompile Include="..\..\src\lua\lfunc.cpp" />
<ClCompile Include="..\..\src\lua\lgc.cpp" />
<ClCompile Include="..\..\src\lua\liolib.cpp" />
<ClCompile Include="..\..\src\lua\llex.cpp" />
<ClCompile Include="..\..\src\lua\lmathlib.cpp" />
<ClCompile Include="..\..\src\lua\lmem.cpp" />
<ClCompile Include="..\..\src\lua\loadlib.cpp" />
<ClCompile Include="..\..\src\lua\lobject.cpp" />
<ClCompile Include="..\..\src\lua\lopcodes.cpp" />
<ClCompile Include="..\..\src\lua\loslib.cpp" />
<ClCompile Include="..\..\src\lua\lparser.cpp" />
<ClCompile Include="..\..\src\lua\lstate.cpp" />
<ClCompile Include="..\..\src\lua\lstring.cpp" />
<ClCompile Include="..\..\src\lua\lstrlib.cpp" />
<ClCompile Include="..\..\src\lua\ltable.cpp" />
<ClCompile Include="..\..\src\lua\ltablib.cpp" />
<ClCompile Include="..\..\src\lua\ltm.cpp" />
<ClCompile Include="..\..\src\lua\lundump.cpp" />
<ClCompile Include="..\..\src\lua\lutf8lib.cpp" />
<ClCompile Include="..\..\src\lua\lvm.cpp" />
<ClCompile Include="..\..\src\lua\lzio.cpp" />
<ClCompile Include="..\..\src\lua_jailbreak_exception.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\lua\lapi.h" />
<ClInclude Include="..\..\src\lua\lauxlib.h" />
<ClInclude Include="..\..\src\lua\lcode.h" />
<ClInclude Include="..\..\src\lua\lctype.h" />
<ClInclude Include="..\..\src\lua\ldebug.h" />
<ClInclude Include="..\..\src\lua\ldo.h" />
<ClInclude Include="..\..\src\lua\lfunc.h" />
<ClInclude Include="..\..\src\lua\lgc.h" />
<ClInclude Include="..\..\src\lua\ljumptab.h" />
<ClInclude Include="..\..\src\lua\llex.h" />
<ClInclude Include="..\..\src\lua\llimits.h" />
<ClInclude Include="..\..\src\lua\lmem.h" />
<ClInclude Include="..\..\src\lua\lobject.h" />
<ClInclude Include="..\..\src\lua\lopcodes.h" />
<ClInclude Include="..\..\src\lua\lopnames.h" />
<ClInclude Include="..\..\src\lua\lparser.h" />
<ClInclude Include="..\..\src\lua\lprefix.h" />
<ClInclude Include="..\..\src\lua\lstate.h" />
<ClInclude Include="..\..\src\lua\lstring.h" />
<ClInclude Include="..\..\src\lua\ltable.h" />
<ClInclude Include="..\..\src\lua\ltm.h" />
<ClInclude Include="..\..\src\lua\lua.h" />
<ClInclude Include="..\..\src\lua\luaconf.h" />
<ClInclude Include="..\..\src\lua\lualib.h" />
<ClInclude Include="..\..\src\lua\lundump.h" />
<ClInclude Include="..\..\src\lua\lvm.h" />
<ClInclude Include="..\..\src\lua\lzio.h" />
<ClInclude Include="..\..\src\lua_jailbreak_exception.hpp" />
<ClInclude Include="..\..\src\wesnoth_lua_config.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -1,200 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\lua\lapi.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lauxlib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lbaselib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lcode.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lcorolib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lctype.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\ldblib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\ldebug.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\ldo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\ldump.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lfunc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lgc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\liolib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\llex.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lmathlib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lmem.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\loadlib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lobject.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lopcodes.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\loslib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lparser.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lstate.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lstring.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lstrlib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\ltable.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\ltablib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\ltm.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lundump.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lutf8lib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lvm.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua\lzio.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lua_jailbreak_exception.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\lua\lapi.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lauxlib.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lcode.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lctype.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\ldebug.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\ldo.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lfunc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lgc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\llex.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\llimits.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lmem.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lobject.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lopcodes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lparser.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lprefix.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lstate.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lstring.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\ltable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\ltm.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lua.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\luaconf.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lualib.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lundump.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lvm.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lzio.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua_jailbreak_exception.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\wesnoth_lua_config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\ljumptab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lua\lopnames.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View file

@ -1,81 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29102.190
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wesnoth", "wesnoth.vcxproj", "{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wesnothd", "wesnothd.vcxproj", "{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wesnothlib", "wesnothlib.vcxproj", "{4A16638B-127B-4AE8-8E0B-4B211B96F976}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblua", "liblua.vcxproj", "{01AE7104-A4B1-428E-BA7C-460FE656AE5C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "campaignd", "campaignd.vcxproj", "{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win64 = Debug|Win64
Release|Win64 = Release|Win64
ReleaseDEBUG|Win64 = ReleaseDEBUG|Win64
Test_Debug|Win64 = Test_Debug|Win64
Test_Release|Win64 = Test_Release|Win64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}.Debug|Win64.ActiveCfg = Debug|x64
{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}.Debug|Win64.Build.0 = Debug|x64
{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}.Release|Win64.ActiveCfg = Release|x64
{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}.Release|Win64.Build.0 = Release|x64
{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}.ReleaseDEBUG|Win64.ActiveCfg = ReleaseDEBUG|x64
{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}.ReleaseDEBUG|Win64.Build.0 = ReleaseDEBUG|x64
{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}.Test_Debug|Win64.ActiveCfg = Test_Debug|x64
{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}.Test_Debug|Win64.Build.0 = Test_Debug|x64
{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}.Test_Release|Win64.ActiveCfg = Test_Release|x64
{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}.Test_Release|Win64.Build.0 = Test_Release|x64
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Debug|Win64.ActiveCfg = Debug|x64
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Debug|Win64.Build.0 = Debug|x64
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Release|Win64.ActiveCfg = Release|x64
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Release|Win64.Build.0 = Release|x64
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.ReleaseDEBUG|Win64.ActiveCfg = ReleaseDEBUG|x64
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.ReleaseDEBUG|Win64.Build.0 = ReleaseDEBUG|x64
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Test_Debug|Win64.ActiveCfg = Debug|x64
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Test_Debug|Win64.Build.0 = Debug|x64
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Test_Release|Win64.ActiveCfg = Release|x64
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Test_Release|Win64.Build.0 = Release|x64
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Debug|Win64.ActiveCfg = Debug|x64
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Debug|Win64.Build.0 = Debug|x64
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Release|Win64.ActiveCfg = Release|x64
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Release|Win64.Build.0 = Release|x64
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.ReleaseDEBUG|Win64.ActiveCfg = ReleaseDEBUG|x64
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.ReleaseDEBUG|Win64.Build.0 = ReleaseDEBUG|x64
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Test_Debug|Win64.ActiveCfg = Debug|x64
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Test_Debug|Win64.Build.0 = Debug|x64
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Test_Release|Win64.ActiveCfg = Release|x64
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Test_Release|Win64.Build.0 = Release|x64
{01AE7104-A4B1-428E-BA7C-460FE656AE5C}.Debug|Win64.ActiveCfg = Debug|x64
{01AE7104-A4B1-428E-BA7C-460FE656AE5C}.Debug|Win64.Build.0 = Debug|x64
{01AE7104-A4B1-428E-BA7C-460FE656AE5C}.Release|Win64.ActiveCfg = Release|x64
{01AE7104-A4B1-428E-BA7C-460FE656AE5C}.Release|Win64.Build.0 = Release|x64
{01AE7104-A4B1-428E-BA7C-460FE656AE5C}.ReleaseDEBUG|Win64.ActiveCfg = ReleaseDEBUG|x64
{01AE7104-A4B1-428E-BA7C-460FE656AE5C}.ReleaseDEBUG|Win64.Build.0 = ReleaseDEBUG|x64
{01AE7104-A4B1-428E-BA7C-460FE656AE5C}.Test_Debug|Win64.ActiveCfg = Debug|x64
{01AE7104-A4B1-428E-BA7C-460FE656AE5C}.Test_Debug|Win64.Build.0 = Debug|x64
{01AE7104-A4B1-428E-BA7C-460FE656AE5C}.Test_Release|Win64.ActiveCfg = Release|x64
{01AE7104-A4B1-428E-BA7C-460FE656AE5C}.Test_Release|Win64.Build.0 = Release|x64
{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}.Debug|Win64.ActiveCfg = Debug|x64
{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}.Debug|Win64.Build.0 = Debug|x64
{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}.Release|Win64.ActiveCfg = Release|x64
{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}.Release|Win64.Build.0 = Release|x64
{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}.ReleaseDEBUG|Win64.ActiveCfg = Release|x64
{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}.ReleaseDEBUG|Win64.Build.0 = Release|x64
{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}.Test_Debug|Win64.ActiveCfg = Debug|x64
{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}.Test_Debug|Win64.Build.0 = Debug|x64
{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}.Test_Release|Win64.ActiveCfg = Release|x64
{DEACBC05-182F-4D9B-A31C-B9A9098DFAAD}.Test_Release|Win64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {56F14F84-C8A5-4A50-993D-B255775CDF84}
EndGlobalSection
EndGlobal

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,285 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDEBUG|x64">
<Configuration>ReleaseDEBUG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}</ProjectGuid>
<RootNamespace>wesnothd</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\</LocalDebuggerWorkingDirectory>
<OutDir>$(SolutionDir)..\..\</OutDir>
<IntDir>$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\</LocalDebuggerWorkingDirectory>
<OutDir>$(SolutionDir)\..\..\</OutDir>
<IntDir>$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerWorkingDirectory>$(SolutionDir)..\..\</LocalDebuggerWorkingDirectory>
<OutDir>$(SolutionDir)\..\..\</OutDir>
<IntDir>$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<BuildLog>
<Path>$(IntDir)BuildLog-wesnothd.htm</Path>
</BuildLog>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINSOCK_DEPRECATED_NO_WARNINGS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_WIN32_WINNT=_WIN32_WINNT_WIN7;HAVE_PYTHON;USE_GZIP;NOMINMAX;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>UninitializedLocalUsageCheck</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4503;4244;4127;4512;4003;4068;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Link>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>winmm.lib;ws2_32.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<BuildLog>
<Path>$(IntDir)BuildLog-wesnothd.htm</Path>
</BuildLog>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINSOCK_DEPRECATED_NO_WARNINGS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_WIN32_WINNT=_WIN32_WINNT_WIN7;HAVE_PYTHON;USE_GZIP;NOMINMAX;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<OpenMPSupport>false</OpenMPSupport>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4503;4244;</DisableSpecificWarnings>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Link>
<AdditionalDependencies>winmm.lib;ws2_32.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">
<BuildLog>
<Path>$(IntDir)BuildLog-wesnothd.htm</Path>
</BuildLog>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINSOCK_DEPRECATED_NO_WARNINGS;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_WIN32_WINNT=_WIN32_WINNT_WIN7;HAVE_PYTHON;USE_GZIP;NOMINMAX;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<OpenMPSupport>false</OpenMPSupport>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4503;4244;</DisableSpecificWarnings>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Link>
<AdditionalDependencies>winmm.lib;ws2_32.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ResourceCompile Include="..\..\packaging\windows\wesnothd.rc" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\src\filesystem_win32.ii" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\mt_rng.cpp" />
<ClCompile Include="..\..\src\seed_rng.cpp" />
<ClCompile Include="..\..\src\server\common\resultsets\game_history.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)\Server\Common\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)\Server\Common\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)\Server\Common\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\ban.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\common\forum_user_handler.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\game.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\metrics.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\common\dbconn.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\common\resultsets\tournaments.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\Common\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\Common\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\Common\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\common\resultsets\ban_check.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\Common\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\Common\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\Common\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\player.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\player_connection.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\player_network.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\server.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\common\server_base.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\common\simple_wml.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<DisableSpecificWarnings>4706;4458;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\server\common\user_handler.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Server\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Server\</ObjectFileName>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\mt_rng.hpp" />
<ClInclude Include="..\..\src\seed_rng.hpp" />
<ClInclude Include="..\..\src\server\common\dbconn.hpp" />
<ClInclude Include="..\..\src\server\common\forum_user_handler.hpp" />
<ClInclude Include="..\..\src\server\common\resultsets\ban_check.hpp" />
<ClInclude Include="..\..\src\server\common\resultsets\game_history.hpp" />
<ClInclude Include="..\..\src\server\common\resultsets\rs_base.hpp" />
<ClInclude Include="..\..\src\server\common\resultsets\tournaments.hpp" />
<ClInclude Include="..\..\src\server\common\server_base.hpp" />
<ClInclude Include="..\..\src\server\common\simple_wml.hpp" />
<ClInclude Include="..\..\src\server\common\user_handler.hpp" />
<ClInclude Include="..\..\src\server\wesnothd\ban.hpp" />
<ClInclude Include="..\..\src\server\wesnothd\game.hpp" />
<ClInclude Include="..\..\src\server\wesnothd\metrics.hpp" />
<ClInclude Include="..\..\src\server\wesnothd\player.hpp" />
<ClInclude Include="..\..\src\server\wesnothd\player_connection.hpp" />
<ClInclude Include="..\..\src\server\wesnothd\player_network.hpp" />
<ClInclude Include="..\..\src\server\wesnothd\server.hpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="wesnothlib.vcxproj">
<Project>{4a16638b-127b-4ae8-8e0b-4b211b96f976}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -1,136 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{9fc909e9-c189-489c-bd64-0286fe4f520c}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
<Filter Include="Others">
<UniqueIdentifier>{8e764f99-5e5d-4762-b5e1-c3c19a9d9d75}</UniqueIdentifier>
<Extensions>ii;i</Extensions>
</Filter>
<Filter Include="Server">
<UniqueIdentifier>{8b7cb799-913f-4247-a713-5bd88a6885d4}</UniqueIdentifier>
</Filter>
<Filter Include="Server\Wesnothd">
<UniqueIdentifier>{7dc567bc-cee4-4802-9149-ce9f20ba7742}</UniqueIdentifier>
</Filter>
<Filter Include="Server\Common">
<UniqueIdentifier>{6f71af2b-f2e3-484d-8bce-fea83b18a267}</UniqueIdentifier>
</Filter>
<Filter Include="Server\Common\Resultsets">
<UniqueIdentifier>{5063e352-be24-4c5a-a7ec-a3b5edd943f7}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\packaging\windows\wesnothd.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<None Include="..\..\src\filesystem_win32.ii">
<Filter>Others</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\mt_rng.cpp" />
<ClCompile Include="..\..\src\seed_rng.cpp" />
<ClCompile Include="..\..\src\server\wesnothd\ban.cpp">
<Filter>Server\Wesnothd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\game.cpp">
<Filter>Server\Wesnothd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\metrics.cpp">
<Filter>Server\Wesnothd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\player.cpp">
<Filter>Server\Wesnothd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\player_connection.cpp">
<Filter>Server\Wesnothd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\player_network.cpp">
<Filter>Server\Wesnothd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\wesnothd\server.cpp">
<Filter>Server\Wesnothd</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\common\resultsets\ban_check.cpp">
<Filter>Server\Common\Resultsets</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\common\resultsets\tournaments.cpp">
<Filter>Server\Common\Resultsets</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\common\dbconn.cpp">
<Filter>Server\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\common\forum_user_handler.cpp">
<Filter>Server\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\common\server_base.cpp">
<Filter>Server\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\common\simple_wml.cpp">
<Filter>Server\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\common\user_handler.cpp">
<Filter>Server\Common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\server\common\resultsets\game_history.cpp">
<Filter>Server\Common\Resultsets</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\mt_rng.hpp" />
<ClInclude Include="..\..\src\seed_rng.hpp" />
<ClInclude Include="..\..\src\server\wesnothd\ban.hpp">
<Filter>Server\Wesnothd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\wesnothd\game.hpp">
<Filter>Server\Wesnothd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\wesnothd\metrics.hpp">
<Filter>Server\Wesnothd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\wesnothd\player.hpp">
<Filter>Server\Wesnothd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\wesnothd\player_connection.hpp">
<Filter>Server\Wesnothd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\wesnothd\player_network.hpp">
<Filter>Server\Wesnothd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\wesnothd\server.hpp">
<Filter>Server\Wesnothd</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\resultsets\ban_check.hpp">
<Filter>Server\Common\Resultsets</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\resultsets\rs_base.hpp">
<Filter>Server\Common\Resultsets</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\resultsets\tournaments.hpp">
<Filter>Server\Common\Resultsets</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\dbconn.hpp">
<Filter>Server\Common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\forum_user_handler.hpp">
<Filter>Server\Common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\server_base.hpp">
<Filter>Server\Common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\simple_wml.hpp">
<Filter>Server\Common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\user_handler.hpp">
<Filter>Server\Common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\server\common\resultsets\game_history.hpp">
<Filter>Server\Common\Resultsets</Filter>
</ClInclude>
</ItemGroup>
</Project>

View file

@ -1,225 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDEBUG|x64">
<Configuration>ReleaseDEBUG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4A16638B-127B-4AE8-8E0B-4B211B96F976}</ProjectGuid>
<RootNamespace>wesnothlib</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<BuildLog>
<Path>$(IntDir)BuildLog.htm</Path>
</BuildLog>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_PYTHON;USE_GZIP;NO_HAVE_FRIBIDI;NOMINMAX;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING;_DEBUG;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>UninitializedLocalUsageCheck</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4503;4351;4244;4127;4512;4003;4068;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<BuildLog>
<Path>$(IntDir)BuildLog-wesnothlib.htm</Path>
</BuildLog>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_PYTHON;USE_GZIP;NO_HAVE_FRIBIDI;NOMINMAX;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<OpenMPSupport>false</OpenMPSupport>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<DisableSpecificWarnings>4503;4351;4244;</DisableSpecificWarnings>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">
<BuildLog>
<Path>$(IntDir)BuildLog-wesnothlib.htm</Path>
</BuildLog>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;HAVE_PYTHON;USE_GZIP;NO_HAVE_FRIBIDI;NOMINMAX;BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE;_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<OpenMPSupport>false</OpenMPSupport>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<DisableSpecificWarnings>4503;4351;4244;</DisableSpecificWarnings>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/utf-8 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<LanguageStandard_C>stdc17</LanguageStandard_C>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\color.cpp" />
<ClCompile Include="..\..\src\color_range.cpp" />
<ClCompile Include="..\..\src\commandline_argv.cpp" />
<ClCompile Include="..\..\src\config.cpp" />
<ClCompile Include="..\..\src\config_attribute_value.cpp" />
<ClCompile Include="..\..\src\crypt_blowfish\crypt_blowfish.c" />
<ClCompile Include="..\..\src\filesystem.cpp" />
<ClCompile Include="..\..\src\filesystem_common.cpp" />
<ClCompile Include="..\..\src\font\constants.cpp" />
<ClCompile Include="..\..\src\formula\string_utils.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='ReleaseDEBUG|x64'">$(IntDir)Formula\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)Formula\</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)Formula\</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\game_config.cpp" />
<ClCompile Include="..\..\src\game_config_view.cpp" />
<ClCompile Include="..\..\src\gettext.cpp" />
<ClCompile Include="..\..\src\log.cpp" />
<ClCompile Include="..\..\src\log_windows.cpp" />
<ClCompile Include="..\..\src\random.cpp" />
<ClCompile Include="..\..\src\serialization\base64.cpp" />
<ClCompile Include="..\..\src\serialization\binary_or_text.cpp">
<DisableSpecificWarnings>4706;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<ClCompile Include="..\..\src\serialization\parser.cpp">
<DisableSpecificWarnings>4706;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<ClCompile Include="..\..\src\serialization\preprocessor.cpp" />
<ClCompile Include="..\..\src\serialization\schema_validator.cpp" />
<ClCompile Include="..\..\src\serialization\string_utils.cpp" />
<ClCompile Include="..\..\src\serialization\tokenizer.cpp" />
<ClCompile Include="..\..\src\serialization\unicode.cpp" />
<ClCompile Include="..\..\src\serialization\validator.cpp" />
<ClCompile Include="..\..\src\tstring.cpp" />
<ClCompile Include="..\..\src\game_version.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\color.hpp" />
<ClInclude Include="..\..\src\color_range.hpp" />
<ClInclude Include="..\..\src\commandline_argv.hpp" />
<ClInclude Include="..\..\src\config.hpp" />
<ClInclude Include="..\..\src\config_attribute_value.hpp" />
<ClInclude Include="..\..\src\crypt_blowfish\crypt_blowfish.h" />
<ClInclude Include="..\..\src\filesystem.hpp" />
<ClInclude Include="..\..\src\font\constants.hpp" />
<ClInclude Include="..\..\src\formula\string_utils.hpp" />
<ClInclude Include="..\..\src\game_config.hpp" />
<ClInclude Include="..\..\src\game_config_view.hpp" />
<ClInclude Include="..\..\src\gettext.hpp" />
<ClInclude Include="..\..\src\global.hpp" />
<ClInclude Include="..\..\src\lexical_cast.hpp" />
<ClInclude Include="..\..\src\libc_error.hpp" />
<ClInclude Include="..\..\src\log.hpp" />
<ClInclude Include="..\..\src\log_windows.hpp" />
<ClInclude Include="..\..\src\random.hpp" />
<ClInclude Include="..\..\src\serialization\base64.hpp" />
<ClInclude Include="..\..\src\serialization\binary_or_text.hpp" />
<ClInclude Include="..\..\src\serialization\parser.hpp" />
<ClInclude Include="..\..\src\serialization\preprocessor.hpp" />
<ClInclude Include="..\..\src\serialization\schema_validator.hpp" />
<ClInclude Include="..\..\src\serialization\string_utils.hpp" />
<ClInclude Include="..\..\src\serialization\tokenizer.hpp" />
<ClInclude Include="..\..\src\serialization\unicode.hpp" />
<ClInclude Include="..\..\src\serialization\validator.hpp" />
<ClInclude Include="..\..\src\spirit_po\catalog.hpp" />
<ClInclude Include="..\..\src\spirit_po\catalog_metadata.hpp" />
<ClInclude Include="..\..\src\spirit_po\default_plural_forms_compiler.hpp" />
<ClInclude Include="..\..\src\spirit_po\default_plural_forms_expressions.hpp" />
<ClInclude Include="..\..\src\spirit_po\exceptions.hpp" />
<ClInclude Include="..\..\src\spirit_po\po_grammar.hpp" />
<ClInclude Include="..\..\src\spirit_po\po_message.hpp" />
<ClInclude Include="..\..\src\spirit_po\po_message_adapted.hpp" />
<ClInclude Include="..\..\src\spirit_po\spirit_po.hpp" />
<ClInclude Include="..\..\src\spirit_po\version.hpp" />
<ClInclude Include="..\..\src\tstring.hpp" />
<ClInclude Include="..\..\src\utils\type_trait_aliases.hpp" />
<ClInclude Include="..\..\src\game_version.hpp" />
<ClInclude Include="..\..\src\wesconfig.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -1,169 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
<Filter Include="Serialization">
<UniqueIdentifier>{6dc90a51-9e0e-481d-aecb-1504d6f9a21b}</UniqueIdentifier>
</Filter>
<Filter Include="Font">
<UniqueIdentifier>{2ce5a818-4bb3-4502-8751-f2d8f3f36527}</UniqueIdentifier>
</Filter>
<Filter Include="spirit_po">
<UniqueIdentifier>{36afc638-474c-4646-b7ac-c1d8df8344f2}</UniqueIdentifier>
</Filter>
<Filter Include="Utils">
<UniqueIdentifier>{dd5bcb3f-5af9-4dce-bcf3-9c23cec65372}</UniqueIdentifier>
</Filter>
<Filter Include="Formula">
<UniqueIdentifier>{89506bfd-cc4a-4db3-84f4-b90d70040b9c}</UniqueIdentifier>
</Filter>
<Filter Include="crypt_blowfish">
<UniqueIdentifier>{ba7645fc-4486-437c-845e-9f30d991e7b6}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\serialization\binary_or_text.cpp">
<Filter>Serialization</Filter>
</ClCompile>
<ClCompile Include="..\..\src\serialization\parser.cpp">
<Filter>Serialization</Filter>
</ClCompile>
<ClCompile Include="..\..\src\serialization\preprocessor.cpp">
<Filter>Serialization</Filter>
</ClCompile>
<ClCompile Include="..\..\src\serialization\schema_validator.cpp">
<Filter>Serialization</Filter>
</ClCompile>
<ClCompile Include="..\..\src\serialization\string_utils.cpp">
<Filter>Serialization</Filter>
</ClCompile>
<ClCompile Include="..\..\src\serialization\tokenizer.cpp">
<Filter>Serialization</Filter>
</ClCompile>
<ClCompile Include="..\..\src\serialization\unicode.cpp">
<Filter>Serialization</Filter>
</ClCompile>
<ClCompile Include="..\..\src\serialization\validator.cpp">
<Filter>Serialization</Filter>
</ClCompile>
<ClCompile Include="..\..\src\color.cpp" />
<ClCompile Include="..\..\src\color_range.cpp" />
<ClCompile Include="..\..\src\config.cpp" />
<ClCompile Include="..\..\src\config_attribute_value.cpp" />
<ClCompile Include="..\..\src\filesystem_common.cpp" />
<ClCompile Include="..\..\src\game_config.cpp" />
<ClCompile Include="..\..\src\log.cpp" />
<ClCompile Include="..\..\src\log_windows.cpp" />
<ClCompile Include="..\..\src\random.cpp" />
<ClCompile Include="..\..\src\tstring.cpp" />
<ClCompile Include="..\..\src\game_version.cpp" />
<ClCompile Include="..\..\src\font\constants.cpp">
<Filter>Font</Filter>
</ClCompile>
<ClCompile Include="..\..\src\formula\string_utils.cpp">
<Filter>Formula</Filter>
</ClCompile>
<ClCompile Include="..\..\src\crypt_blowfish\crypt_blowfish.c">
<Filter>crypt_blowfish</Filter>
</ClCompile>
<ClCompile Include="..\..\src\serialization\base64.cpp">
<Filter>Serialization</Filter>
</ClCompile>
<ClCompile Include="..\..\src\filesystem.cpp" />
<ClCompile Include="..\..\src\gettext.cpp" />
<ClCompile Include="..\..\src\game_config_view.cpp" />
<ClCompile Include="..\..\src\commandline_argv.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\serialization\binary_or_text.hpp">
<Filter>Serialization</Filter>
</ClInclude>
<ClInclude Include="..\..\src\serialization\parser.hpp">
<Filter>Serialization</Filter>
</ClInclude>
<ClInclude Include="..\..\src\serialization\preprocessor.hpp">
<Filter>Serialization</Filter>
</ClInclude>
<ClInclude Include="..\..\src\serialization\schema_validator.hpp">
<Filter>Serialization</Filter>
</ClInclude>
<ClInclude Include="..\..\src\serialization\string_utils.hpp">
<Filter>Serialization</Filter>
</ClInclude>
<ClInclude Include="..\..\src\serialization\tokenizer.hpp">
<Filter>Serialization</Filter>
</ClInclude>
<ClInclude Include="..\..\src\serialization\unicode.hpp">
<Filter>Serialization</Filter>
</ClInclude>
<ClInclude Include="..\..\src\serialization\validator.hpp">
<Filter>Serialization</Filter>
</ClInclude>
<ClInclude Include="..\..\src\color.hpp" />
<ClInclude Include="..\..\src\color_range.hpp" />
<ClInclude Include="..\..\src\config.hpp" />
<ClInclude Include="..\..\src\config_attribute_value.hpp" />
<ClInclude Include="..\..\src\filesystem.hpp" />
<ClInclude Include="..\..\src\game_config.hpp" />
<ClInclude Include="..\..\src\gettext.hpp" />
<ClInclude Include="..\..\src\global.hpp" />
<ClInclude Include="..\..\src\lexical_cast.hpp" />
<ClInclude Include="..\..\src\libc_error.hpp" />
<ClInclude Include="..\..\src\log.hpp" />
<ClInclude Include="..\..\src\log_windows.hpp" />
<ClInclude Include="..\..\src\random.hpp" />
<ClInclude Include="..\..\src\tstring.hpp" />
<ClInclude Include="..\..\src\game_version.hpp" />
<ClInclude Include="..\..\src\wesconfig.h" />
<ClInclude Include="..\..\src\font\constants.hpp">
<Filter>Font</Filter>
</ClInclude>
<ClInclude Include="..\..\src\spirit_po\catalog.hpp">
<Filter>spirit_po</Filter>
</ClInclude>
<ClInclude Include="..\..\src\spirit_po\catalog_metadata.hpp">
<Filter>spirit_po</Filter>
</ClInclude>
<ClInclude Include="..\..\src\spirit_po\default_plural_forms_compiler.hpp">
<Filter>spirit_po</Filter>
</ClInclude>
<ClInclude Include="..\..\src\spirit_po\default_plural_forms_expressions.hpp">
<Filter>spirit_po</Filter>
</ClInclude>
<ClInclude Include="..\..\src\spirit_po\exceptions.hpp">
<Filter>spirit_po</Filter>
</ClInclude>
<ClInclude Include="..\..\src\spirit_po\po_grammar.hpp">
<Filter>spirit_po</Filter>
</ClInclude>
<ClInclude Include="..\..\src\spirit_po\po_message.hpp">
<Filter>spirit_po</Filter>
</ClInclude>
<ClInclude Include="..\..\src\spirit_po\po_message_adapted.hpp">
<Filter>spirit_po</Filter>
</ClInclude>
<ClInclude Include="..\..\src\spirit_po\spirit_po.hpp">
<Filter>spirit_po</Filter>
</ClInclude>
<ClInclude Include="..\..\src\spirit_po\version.hpp">
<Filter>spirit_po</Filter>
</ClInclude>
<ClInclude Include="..\..\src\utils\type_trait_aliases.hpp">
<Filter>Utils</Filter>
</ClInclude>
<ClInclude Include="..\..\src\formula\string_utils.hpp">
<Filter>Formula</Filter>
</ClInclude>
<ClInclude Include="..\..\src\crypt_blowfish\crypt_blowfish.h">
<Filter>crypt_blowfish</Filter>
</ClInclude>
<ClInclude Include="..\..\src\serialization\base64.hpp">
<Filter>Serialization</Filter>
</ClInclude>
<ClInclude Include="..\..\src\game_config_view.hpp" />
<ClInclude Include="..\..\src\commandline_argv.hpp" />
</ItemGroup>
</Project>

View file

@ -32,6 +32,8 @@ preferences/general.cpp
key.cpp
language.cpp
map/label.cpp
map/location.cpp
map/map.cpp
minimap.cpp
pathfind/astarsearch.cpp
pathutils.cpp
@ -44,6 +46,7 @@ soundsource.cpp
terrain/builder.cpp
terrain/terrain.cpp
terrain/translation.cpp
terrain/type_data.cpp
theme.cpp
time_of_day.cpp
tooltips.cpp

View file

@ -2,18 +2,19 @@ color.cpp
color_range.cpp
commandline_argv.cpp
config.cpp
crypt_blowfish/crypt_blowfish.c
config_attribute_value.cpp
config_cache.cpp
crypt_blowfish/crypt_blowfish.c
filesystem.cpp
filesystem_common.cpp
font/constants.cpp
game_config.cpp
game_config_view.cpp
game_version.cpp
gettext.cpp
hash.cpp
log.cpp
map/location.cpp
map/map.cpp
lua_jailbreak_exception.cpp
mt_rng.cpp
random.cpp
seed_rng.cpp
@ -22,13 +23,11 @@ serialization/binary_or_text.cpp
serialization/parser.cpp
serialization/preprocessor.cpp
serialization/schema_validator.cpp
serialization/string_utils.cpp
serialization/schema/key.cpp
serialization/schema/tag.cpp
serialization/schema/type.cpp
serialization/string_utils.cpp
serialization/tokenizer.cpp
serialization/unicode.cpp
serialization/validator.cpp
terrain/type_data.cpp
tstring.cpp
game_version.cpp

View file

@ -1,4 +1,3 @@
lua_jailbreak_exception.cpp
lua/lapi.cpp
lua/lauxlib.cpp
lua/lbaselib.cpp

View file

@ -64,7 +64,6 @@ chat_command_handler.cpp
chat_events.cpp
chat_log.cpp
commandline_options.cpp
config_cache.cpp
controller_base.cpp
countdown_clock.cpp
desktop/battery_info.cpp

View file

@ -18,8 +18,6 @@ include_directories(SYSTEM ${PANGOCAIRO_INCLUDE_DIRS} )
include_directories(SYSTEM ${GETTEXT_INCLUDE_DIR} )
include_directories(SYSTEM ${LIBDBUS_INCLUDE_DIRS} )
include_directories(SYSTEM ${VORBISFILE_INCLUDE_DIR} )
#include_directories(SYSTEM ${GLEW_INCLUDE_DIRS})
#include_directories(SYSTEM ${OPENGL_INCLUDE_DIR})
include_directories(SYSTEM ${SDL2_INCLUDE_DIR} )
set(sdl-lib ${SDL2_LIBRARY})
@ -50,24 +48,24 @@ link_directories(
)
set(common-external-libs
${sdl-lib}
${Boost_IOSTREAMS_LIBRARY}
${Boost_REGEX_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_LOCALE_LIBRARY}
)
if(WIN32)
set(common-external-libs ${common-external-libs} shlwapi.lib winmm.lib)
endif(WIN32)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(common-external-libs
${common-external-libs}
"-licudata -licui18n -licuuc"
)
set(common-external-libs ${common-external-libs} "-licudata -licui18n -licuuc")
endif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(game-external-libs
${common-external-libs}
${CRYPTO_LIBRARY}
${sdl-lib}
${OPENSSL_CRYPTO_LIBRARY}
${Boost_SYSTEM_LIBRARIES}
${Boost_RANDOM_LIBRARY}
${Boost_THREAD_LIBRARY}
@ -77,15 +75,10 @@ set(game-external-libs
${FONTCONFIG_LIBRARIES}
${LIBDBUS_LIBRARIES}
${VORBISFILE_LIBRARIES}
# ${OPENGL_LIBRARIES}
# ${GLEW_LIBRARIES}
)
if(ENABLE_HISTORY AND HISTORY_FOUND)
set(game-external-libs
${game-external-libs}
${HISTORY_LIBRARY}
)
set(game-external-libs ${game-external-libs} ${HISTORY_LIBRARY})
endif(ENABLE_HISTORY AND HISTORY_FOUND)
set(server-external-libs
@ -93,11 +86,14 @@ set(server-external-libs
${Boost_SYSTEM_LIBRARIES}
${Boost_RANDOM_LIBRARY}
${Boost_COROUTINE_LIBRARY}
${CRYPTO_LIBRARY}
${OPENSSL_CRYPTO_LIBRARY}
${MYSQL_LIBS}
-lpthread
)
if(NOT WIN32)
set(server-external-libs ${server-external-libs} -lpthread)
endif(NOT WIN32)
if(APPLE)
set(game-external-libs ${game-external-libs} "-framework IOKit")
endif(APPLE)
@ -107,164 +103,44 @@ if(MINGW)
set(game-external-libs ${game-external-libs} ${MINGW_SYSTEM_LIBS})
endif(MINGW)
########### Set Library mode ###############
if(ENABLE_SHARED_LIBRARIES)
set(LIBRARY_TYPE SHARED)
else(ENABLE_SHARED_LIBRARIES)
set(LIBRARY_TYPE STATIC)
endif(ENABLE_SHARED_LIBRARIES)
########### libwesnoth-core ###############
GetSources("libwesnoth_core" libwesnoth-core_STAT_SRC)
if(WIN32)
set(libwesnoth-core_STAT_SRC
${libwesnoth-core_STAT_SRC}
log_windows.cpp
)
endif()
# a 'lib' is automatically set in front when creating the library (as in the filename)
# internal reference is the name given here
add_library(wesnoth-core ${LIBRARY_TYPE} EXCLUDE_FROM_ALL ${libwesnoth-core_STAT_SRC})
target_link_libraries(wesnoth-core ${Boost_FILESYSTEM_LIBRARY})
# Depending on the flag create a real file or an empty dummy.
#
# Since the code is executed every build run of Wesnoth we need to make sure
# that no modifications don't turn into a rebuild. Therefore a the dummy is
# created and the second target only copies the file if modified.
if(ENABLE_DISPLAY_REVISION)
add_custom_target(wesnoth-revision_dummy
COMMAND
${CMAKE_SOURCE_DIR}/utils/autorevision.sh
-t h
> ${CMAKE_CURRENT_BINARY_DIR}/revision.dummy
WORKING_DIRECTORY
${CMAKE_SOURCE_DIR}
)
add_custom_target(wesnoth-revision
COMMAND
${CMAKE_COMMAND} -E
copy_if_different
${CMAKE_CURRENT_BINARY_DIR}/revision.dummy
${CMAKE_CURRENT_BINARY_DIR}/revision.h
)
add_dependencies(wesnoth-revision wesnoth-revision_dummy)
add_dependencies(wesnoth-core wesnoth-revision)
set_source_files_properties(
game_config.cpp
PROPERTIES
COMPILE_DEFINITIONS "LOAD_REVISION"
)
endif()
########### lua ###############
GetSources("lua" lua_STAT_SRC)
# get source lists
GetSources("lua" lua_sources)
GetSources("libwesnoth_sdl" wesnoth_sdl_sources)
GetSources("libwesnoth_widgets" wesnoth_widget-sources)
GetSources("libwesnoth" wesnoth_game_sources)
GetSources("libwesnoth_core" wesnoth_core_sources)
GetSources("wesnoth" wesnoth_sources)
# We explicitly want lua compiled as C++ version, so this line is required:
set_source_files_properties(${lua_STAT_SRC} PROPERTIES LANGUAGE CXX)
set_source_files_properties(${lua_sources} PROPERTIES LANGUAGE CXX)
# Inject a header into the Lua sources for Wesnoth-specific changes
# makedepend won't see it so we have to specifically add it as a dependency.
file(GLOB wesnoth_lua_config wesnoth_lua_config.h)
set_source_files_properties(${lua_STAT_SRC} PROPERTIES COMPILE_FLAGS "-include \"${wesnoth_lua_config}\"")
set_source_files_properties(${lua_STAT_SRC} PROPERTIES OBJECT_DEPENDS ${wesnoth_lua_config})
set_source_files_properties(${lua_sources} PROPERTIES OBJECT_DEPENDS ${wesnoth_lua_config})
if(WIN32)
set(wesnoth_core_sources ${wesnoth_core_sources} log_windows.cpp)
set(wesnoth_game_sources ${wesnoth_game_sources} desktop/windows_tray_notification.cpp desktop/windows_battery_info.cpp)
set_source_files_properties(${lua_sources} PROPERTIES COMPILE_FLAGS "/FI\"${wesnoth_lua_config}\"")
# silence an implicit bitshift conversion warning
set_property(SOURCE SOURCE ${lua_sources} APPEND_STRING PROPERTY COMPILE_FLAGS " /wd4334")
else()
set_source_files_properties(${lua_sources} PROPERTIES COMPILE_FLAGS "-include \"${wesnoth_lua_config}\" -Wno-old-style-cast -Wno-useless-cast -Wno-stringop-overflow")
endif(WIN32)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# silence a Clang specific warning due to extra parenthesis in if statements when comparing instead
set_property(SOURCE
SOURCE ${lua_STAT_SRC}
APPEND_STRING PROPERTY COMPILE_FLAGS
" -Wno-parentheses-equality"
)
# silence a Clang specific warning when compiling the lua code
set_property(SOURCE
SOURCE ${lua_STAT_SRC}
APPEND_STRING PROPERTY COMPILE_FLAGS
" -Wno-string-plus-int"
)
# silence a Clang specific warning due to extra parenthesis in if statements
set_property(SOURCE SOURCE ${lua_sources} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-parentheses-equality")
# silence a Clang specific warning when compiling the lua code
set_property(SOURCE SOURCE ${lua_sources} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-string-plus-int")
endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# a 'lib' is automatically set in front when creating the library (as in the filename)
# internal reference is the name given here
add_library(lua ${LIBRARY_TYPE} EXCLUDE_FROM_ALL ${lua_STAT_SRC})
########### Old style cast flags ###############
# Disable the setting of -Wold-style-cast and Wuseless-cast on some targets.
# old style casts are not wanted by our coding style but some C based code
# uses it. Force the flag off for these files.
set_target_properties(lua
PROPERTIES
COMPILE_FLAGS
"-Wno-old-style-cast -Wno-useless-cast -Wno-stringop-overflow"
)
########### Helper libraries ###############
GetSources("libwesnoth_sdl" wesnoth-sdl_SRC)
add_library(wesnoth-sdl
${LIBRARY_TYPE}
EXCLUDE_FROM_ALL
${wesnoth-sdl_SRC}
)
target_link_libraries(wesnoth-sdl
${sdl-lib}
${sdl_image-lib}
)
GetSources("libwesnoth_widgets" wesnoth-widgets_SRC)
add_library(wesnoth-widgets
${LIBRARY_TYPE}
EXCLUDE_FROM_ALL
${wesnoth-widgets_SRC}
)
if (APPLE)
set(WIDGETS_LIB -Wl,-force_load wesnoth-widgets)
else()
set(WIDGETS_LIB -Wl,--whole-archive wesnoth-widgets -Wl,--no-whole-archive)
endif()
########### Wesnoth main source files ###############
# create libwesnoth-client.a if building the client or the boost unit tests
if(ENABLE_GAME OR ENABLE_TESTS)
GetSources("wesnoth" wesnoth-main_SRC)
add_library(wesnoth-client ${LIBRARY_TYPE} EXCLUDE_FROM_ALL ${wesnoth-main_SRC})
endif(ENABLE_GAME OR ENABLE_TESTS)
########### libwesnoth-game ###############
GetSources("libwesnoth" libwesnoth-game_STAT_SRC)
# On windows only, these files need to be linked, as their headers are included #ifdef win32.
if(WIN32)
set(libwesnoth-game_STAT_SRC
${libwesnoth-game_STAT_SRC}
desktop/windows_tray_notification.cpp
desktop/windows_battery_info.cpp
)
endif(WIN32)
# On apple only
if(APPLE)
set(libwesnoth-game_STAT_SRC
${libwesnoth-game_STAT_SRC}
set(wesnoth_game_sources
${wesnoth_game_sources}
desktop/apple_battery_info.mm
desktop/apple_notification.mm
desktop/apple_version.mm
@ -274,61 +150,90 @@ endif(APPLE)
# For libdbus (essentially just for linux), this file needs to be linked, as its header is included #ifdef HAVE_LIBDBUS
if(LIBDBUS_FOUND)
set(libwesnoth-game_STAT_SRC
${libwesnoth-game_STAT_SRC}
desktop/dbus_features.cpp
)
set(wesnoth_game_sources ${wesnoth_game_sources} desktop/dbus_features.cpp)
endif(LIBDBUS_FOUND)
# a 'lib' is automatically set in front when creating the library (as in the filename)
# internal reference is the name given here
add_library(wesnoth-game ${LIBRARY_TYPE} EXCLUDE_FROM_ALL ${libwesnoth-game_STAT_SRC})
# Depending on the flag create a real file or an empty dummy.
#
# Since the code is executed every build run of Wesnoth we need to make sure
# that no modifications don't turn into a rebuild. Therefore a the dummy is
# created and the second target only copies the file if modified.
if(ENABLE_DISPLAY_REVISION)
add_custom_target(wesnoth-revision_dummy
COMMAND ${CMAKE_SOURCE_DIR}/utils/autorevision.sh -t h > ${CMAKE_CURRENT_BINARY_DIR}/revision.dummy
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
add_custom_target(wesnoth-revision
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_BINARY_DIR}/revision.dummy
${CMAKE_CURRENT_BINARY_DIR}/revision.h
)
add_dependencies(wesnoth-revision wesnoth-revision_dummy)
set_source_files_properties(game_config.cpp PROPERTIES COMPILE_DEFINITIONS "LOAD_REVISION")
endif()
########### Wesnoth ###############
add_library(wesnoth-common STATIC ${wesnoth_core_sources})
if(ENABLE_GAME OR ENABLE_TESTS)
add_library(wesnoth-client STATIC ${wesnoth_sources} ${lua_sources} ${wesnoth_game_sources} ${wesnoth_sdl_sources})
# widgets need special handling since otherwise the way they're registered causes the linker to remove them since it incorrectly thinks they're unused
add_library(wesnoth-widgets ${wesnoth_widget-sources})
if(APPLE)
set(WIDGETS_LIB -Wl,-force_load wesnoth-widgets)
elseif(NOT WIN32)
set(WIDGETS_LIB -Wl,--whole-archive wesnoth-widgets -Wl,--no-whole-archive)
else()
# handled by /WHOLEARCHIVE below
set(WIDGETS_LIB wesnoth-widgets)
endif(APPLE)
endif(ENABLE_GAME OR ENABLE_TESTS)
if(ENABLE_GAME)
if(NOT APPLE)
if(WIN32)
add_executable(wesnoth WIN32 wesnoth.cpp)
set(static-libs -Wl,--start-group
wesnoth-client
lua
wesnoth-core
wesnoth-game
wesnoth-sdl
${WIDGETS_LIB}
wesnoth-client
-Wl,--end-group)
target_link_options(wesnoth PRIVATE /WX /WHOLEARCHIVE:wesnoth-widgets)
elseif(APPLE)
add_executable(wesnoth wesnoth.cpp macosx/SDLMain.mm)
else()
add_executable(wesnoth WIN32 wesnoth.cpp macosx/SDLMain.mm)
add_executable(wesnoth wesnoth.cpp)
endif(WIN32)
set(static-libs wesnoth-client
lua
wesnoth-core
wesnoth-game
wesnoth-sdl
${WIDGETS_LIB}
wesnoth-client)
endif(NOT APPLE)
target_link_libraries(wesnoth wesnoth-common ${WIDGETS_LIB} wesnoth-client wesnoth-common ${game-external-libs})
add_dependencies(wesnoth wesnoth-revision)
target_link_libraries(wesnoth
${static-libs}
${game-external-libs}
)
set_target_properties(wesnoth
PROPERTIES OUTPUT_NAME ${BINARY_PREFIX}wesnoth${BINARY_SUFFIX}
)
set_target_properties(wesnoth PROPERTIES OUTPUT_NAME ${BINARY_PREFIX}wesnoth${BINARY_SUFFIX})
install(TARGETS wesnoth DESTINATION ${CMAKE_INSTALL_BINDIR})
endif(ENABLE_GAME)
########### Boost Unit tests ###############
if(ENABLE_TESTS)
add_definitions(-DBOOST_TEST_DYN_LINK)
GetSources("boost_unit_tests" boost_tests_sources)
add_executable(boost_unit_tests ${boost_tests_sources})
if(WIN32)
target_link_options(boost_unit_tests PRIVATE /WX /WHOLEARCHIVE:wesnoth-widgets)
endif(WIN32)
target_link_libraries(boost_unit_tests wesnoth-common ${WIDGETS_LIB} wesnoth-client wesnoth-common ${game-external-libs} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
add_dependencies(boost_unit_tests wesnoth-revision)
set_target_properties(boost_unit_tests PROPERTIES OUTPUT_NAME ${BINARY_PREFIX}boost_unit_tests${BINARY_SUFFIX})
endif(ENABLE_TESTS)
########### Wesnothd Server ###############
if(ENABLE_SERVER)
GetSources("wesnothd" wesnothd_sources)
GetSources("wesnothd" wesnothd_SRC)
add_executable(wesnothd WIN32 ${wesnothd_SRC})
add_executable(wesnothd ${wesnothd_sources})
if(ENABLE_MYSQL)
target_include_directories(wesnothd SYSTEM PRIVATE ${MYSQL_CFLAGS})
@ -336,23 +241,23 @@ if(ENABLE_SERVER)
target_link_libraries(wesnothd mariadbclientpp)
endif(ENABLE_MYSQL)
target_link_libraries(wesnothd
wesnoth-core
${server-external-libs}
)
target_link_libraries(wesnothd wesnoth-common ${server-external-libs})
if(WIN32)
target_link_options(wesnothd PRIVATE /WX)
endif(WIN32)
set_target_properties(wesnothd PROPERTIES OUTPUT_NAME ${BINARY_PREFIX}wesnothd${BINARY_SUFFIX})
add_dependencies(wesnothd wesnoth-revision)
install(TARGETS wesnothd DESTINATION ${CMAKE_INSTALL_BINDIR})
endif(ENABLE_SERVER)
########### Campaign Server ###############
########### Campaignd Server ###############
if(ENABLE_CAMPAIGN_SERVER)
GetSources("campaignd" campaignd_sources)
GetSources("campaignd" campaignd_SRC)
add_executable(campaignd ${campaignd_SRC})
add_executable(campaignd ${campaignd_sources})
if(ENABLE_MYSQL)
target_include_directories(campaignd SYSTEM PRIVATE ${MYSQL_CFLAGS})
@ -360,60 +265,13 @@ if(ENABLE_CAMPAIGN_SERVER)
target_link_libraries(campaignd mariadbclientpp)
endif(ENABLE_MYSQL)
target_link_libraries(campaignd
wesnoth-core
${server-external-libs}
)
target_link_libraries(campaignd wesnoth-common ${server-external-libs})
if(WIN32)
target_link_options(campaignd PRIVATE /WX)
endif(WIN32)
set_target_properties(campaignd PROPERTIES OUTPUT_NAME ${BINARY_PREFIX}campaignd${BINARY_SUFFIX})
add_dependencies(campaignd wesnoth-revision)
install(TARGETS campaignd DESTINATION ${CMAKE_INSTALL_BINDIR})
endif(ENABLE_CAMPAIGN_SERVER)
########### Unit tests ###############
if(ENABLE_TESTS)
add_definitions(-DBOOST_TEST_DYN_LINK)
GetSources("boost_unit_tests" test_SRC)
set_source_files_properties(
tests/test_util.cpp
PROPERTIES
COMPILE_FLAGS
"${CXX_FLAG_NO_USELESS_CAST}"
)
add_executable(boost_unit_tests ${test_SRC})
if(NOT APPLE)
set(static-libs -Wl,--start-group
wesnoth-client
lua
wesnoth-core
wesnoth-game
wesnoth-sdl
${WIDGETS_LIB}
wesnoth-client
-Wl,--end-group)
else()
set(static-libs wesnoth-client
lua
wesnoth-core
wesnoth-game
wesnoth-sdl
${WIDGETS_LIB}
wesnoth-client)
endif(NOT APPLE)
target_link_libraries(boost_unit_tests
${static-libs}
${game-external-libs}
boost_unit_test_framework
)
set_target_properties(boost_unit_tests
PROPERTIES OUTPUT_NAME ${BINARY_PREFIX}boost_unit_tests${BINARY_SUFFIX}
)
endif(ENABLE_TESTS)

View file

@ -480,6 +480,45 @@ struct lexical_caster<
}
};
/**
* Specialized conversion class.
*
* Specialized for returning a bool from a std::string.
* @note is specialized to silence C4804 from MSVC.
*/
template <>
struct lexical_caster<bool, std::string>
{
bool operator()(const std::string& value, std::optional<bool>) const
{
DEBUG_THROW("specialized - To bool - From std::string");
return value == "1";
}
};
/**
* Specialized conversion class.
*
* Specialized for returning a bool from a (const) char*.
* @note is specialized to silence C4804 from MSVC.
*/
template <class From>
struct lexical_caster<
bool
, From
, void
, std::enable_if_t<std::is_same_v<From, const char*> || std::is_same_v<From, char*>>
>
{
bool operator()(From value, std::optional<bool>) const
{
DEBUG_THROW("specialized - To bool - From (const) char*");
return lexical_cast<bool>(std::string(value));
}
};
} // namespace implementation
#endif

View file

@ -155,8 +155,7 @@ BOOST_AUTO_TEST_CASE(test_lexical_cast_long_long)
}
typedef boost::mpl::vector<
bool
, unsigned char
unsigned char
, unsigned short
, unsigned int
, unsigned long> test_lexical_cast_unsigned_types;
@ -195,6 +194,22 @@ BOOST_AUTO_TEST_CASE(test_lexical_cast_unsigned_long_long)
std::string(value)), const char*, validate);
}
BOOST_AUTO_TEST_CASE(test_lexical_cast_bool)
{
result = "specialized - To bool - From (const) char*";
const char* value = "test";
BOOST_CHECK_EXCEPTION(lexical_cast<bool>(
value), const char*, validate);
BOOST_CHECK_EXCEPTION(lexical_cast<bool>(
const_cast<char*>(value)), const char*, validate);
result = "specialized - To bool - From std::string";
BOOST_CHECK_EXCEPTION(lexical_cast<bool>(
std::string(value)), const char*, validate);
}
typedef boost::mpl::vector<
float
, double

View file

@ -30,7 +30,8 @@ BOOST_AUTO_TEST_CASE( validate_mt19937 )
{
std::mt19937 rng;
for (int i = 0; i < 9999 ; i++) {
rng();
// silence C4834 warning in MSVC
static_cast<void>(rng());
}
unsigned long val = rng();
BOOST_CHECK_EQUAL( val , 4123659995U );

View file

@ -14,6 +14,7 @@
#define GETTEXT_DOMAIN "wesnoth-test"
#include <array>
#include <vector>
#include <string>
#include "serialization/base64.hpp"
@ -55,52 +56,52 @@ BOOST_AUTO_TEST_CASE( utils_split_test )
{
auto split = utils::split(test_string);
std::array expect = {"a", "bb", "ccc || d", "ee", "fff | | g", "hh", "iii"};
std::array<std::string, 7> expect = {"a", "bb", "ccc || d", "ee", "fff | | g", "hh", "iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::split(test_string, ',', utils::REMOVE_EMPTY | utils::STRIP_SPACES);
std::array expect = {"a", "bb", "ccc || d", "ee", "fff | | g", "hh", "iii"};
std::array<std::string, 7> expect = {"a", "bb", "ccc || d", "ee", "fff | | g", "hh", "iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::split(test_string, ',', utils::REMOVE_EMPTY);
std::array expect = {"a", " ", " bb", " ccc || d", " ee", " fff | | g", " ", " hh", " iii"};
std::array<std::string, 9> expect = {"a", " ", " bb", " ccc || d", " ee", " fff | | g", " ", " hh", " iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::split(test_string, ',', utils::STRIP_SPACES);
std::array expect = {"a", "", "bb", "ccc || d", "ee", "", "fff | | g", "", "hh", "iii"};
std::array<std::string, 10> expect = {"a", "", "bb", "ccc || d", "ee", "", "fff | | g", "", "hh", "iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::split(test_string, ',', 0);
std::array expect = {"a", " ", " bb", " ccc || d", " ee", "", " fff | | g", " ", " hh", " iii"};
std::array<std::string, 10> expect = {"a", " ", " bb", " ccc || d", " ee", "", " fff | | g", " ", " hh", " iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::split(test_string, '|');
std::array expect = {"a, , bb, ccc", "d, ee,, fff", "g, , hh, iii"};
std::array<std::string, 3> expect = {"a, , bb, ccc", "d, ee,, fff", "g, , hh, iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::split(test_string, '|', utils::REMOVE_EMPTY | utils::STRIP_SPACES);
std::array expect = {"a, , bb, ccc", "d, ee,, fff", "g, , hh, iii"};
std::array<std::string, 3> expect = {"a, , bb, ccc", "d, ee,, fff", "g, , hh, iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::split(test_string, '|', utils::REMOVE_EMPTY);
std::array expect = {"a, , bb, ccc ", " d, ee,, fff ", " ", " g, , hh, iii"};
std::array<std::string, 4> expect = {"a, , bb, ccc ", " d, ee,, fff ", " ", " g, , hh, iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::split(test_string, '|', utils::STRIP_SPACES);
std::array expect = {"a, , bb, ccc", "", "d, ee,, fff", "", "g, , hh, iii"};
std::array<std::string, 5> expect = {"a, , bb, ccc", "", "d, ee,, fff", "", "g, , hh, iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::split(test_string, '|', 0);
std::array expect = {"a, , bb, ccc ", "", " d, ee,, fff ", " ", " g, , hh, iii"};
std::array<std::string, 5> expect = {"a, , bb, ccc ", "", " d, ee,, fff ", " ", " g, , hh, iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
}
@ -111,42 +112,42 @@ BOOST_AUTO_TEST_CASE( utils_quoted_split_test )
{
auto split = utils::quoted_split(test_string, ',', utils::REMOVE_EMPTY | utils::STRIP_SPACES, '`');
std::array expect = {"a", "`, bb", "ccc || d", "ee", "fff | `| g", "`, hh", "iii"};
std::array<std::string, 7> expect = {"a", "`, bb", "ccc || d", "ee", "fff | `| g", "`, hh", "iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::quoted_split(test_string, ',', utils::REMOVE_EMPTY, '`');
std::array expect = {"a", " `, bb", " ccc || d", " ee", " fff | `| g", " `, hh", " iii"};
std::array<std::string, 7> expect = {"a", " `, bb", " ccc || d", " ee", " fff | `| g", " `, hh", " iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::quoted_split(test_string, ',', utils::STRIP_SPACES, '`');
std::array expect = {"a", "`, bb", "ccc || d", "ee", "", "fff | `| g", "`, hh", "iii"};
std::array<std::string, 8> expect = {"a", "`, bb", "ccc || d", "ee", "", "fff | `| g", "`, hh", "iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::quoted_split(test_string, ',', 0, '`');
std::array expect = {"a", " `, bb", " ccc || d", " ee", "", " fff | `| g", " `, hh", " iii"};
std::array<std::string, 8> expect = {"a", " `, bb", " ccc || d", " ee", "", " fff | `| g", " `, hh", " iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::quoted_split(test_string, '|', utils::REMOVE_EMPTY | utils::STRIP_SPACES, '`');
std::array expect = {"a, `, bb, ccc", "d, ee,, fff", "`| g, `, hh, iii"};
std::array<std::string, 3> expect = {"a, `, bb, ccc", "d, ee,, fff", "`| g, `, hh, iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::quoted_split(test_string, '|', utils::REMOVE_EMPTY, '`');
std::array expect = {"a, `, bb, ccc ", " d, ee,, fff ", " `| g, `, hh, iii"};
std::array<std::string, 3> expect = {"a, `, bb, ccc ", " d, ee,, fff ", " `| g, `, hh, iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::quoted_split(test_string, '|', utils::STRIP_SPACES, '`');
std::array expect = {"a, `, bb, ccc", "", "d, ee,, fff", "`| g, `, hh, iii"};
std::array<std::string, 4> expect = {"a, `, bb, ccc", "", "d, ee,, fff", "`| g, `, hh, iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
{
auto split = utils::quoted_split(test_string, '|', 0, '`');
std::array expect = {"a, `, bb, ccc ", "", " d, ee,, fff ", " `| g, `, hh, iii"};
std::array<std::string, 4> expect = {"a, `, bb, ccc ", "", " d, ee,, fff ", " `| g, `, hh, iii"};
BOOST_CHECK_EQUAL_COLLECTIONS(split.begin(), split.end(), expect.begin(), expect.end());
}
}

47
vcpkg.json Normal file
View file

@ -0,0 +1,47 @@
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
"name": "wesnoth-dependencies",
"version": "0.0.1",
"dependencies": [
"sdl2",
{
"name": "sdl2-image",
"features": [ "libjpeg-turbo" ]
},
{
"name": "sdl2-mixer",
"features": [ "libvorbis", "dynamic-load" ]
},
"bzip2",
"zlib",
"pango",
"cairo",
"fontconfig",
"libvorbis",
"libogg",
"boost-filesystem",
"boost-iostreams",
{
"name": "boost-locale",
"features": [ "icu" ]
},
"boost-random",
{
"name": "boost-regex",
"features": [ "icu" ]
},
"boost-asio",
"boost-assign",
"boost-program-options",
"boost-system",
"boost-thread",
"boost-bimap",
"boost-multi-array",
"boost-logic",
"boost-format",
"boost-scope-exit",
"boost-circular-buffer",
"boost-ptr-container",
"boost-test"
]
}