diff --git a/.gitignore b/.gitignore index 76c99d48..6b001a19 100644 --- a/.gitignore +++ b/.gitignore @@ -6,10 +6,13 @@ src/wx/cmdtab.cpp src/wx/wxvbam.xrs build/* build32/* +vsbuild/* dependencies/* +vcpkg/* .vs/* *.o *.so +*.dll *.exe # vim swap files diff --git a/.gitmodules b/.gitmodules index ff35d490..048fc2d6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "dependencies"] path = dependencies url = https://github.com/visualboyadvance-m/dependencies.git +[submodule "vcpkg"] + path = vcpkg + url = https://github.com/Microsoft/vcpkg.git diff --git a/.travis.yml b/.travis.yml index a55a356f..740e3073 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,9 @@ --- sudo: required +services: + - xvfb + matrix: fast_finish: true include: @@ -15,38 +18,38 @@ matrix: - cd build - cmake .. - make -j2 -# - ./visualboyadvance-m --help +# - xvfb-run ./visualboyadvance-m --help + cache: + directories: + - "$HOME/.ccache" + - env: BUILD_ENV=mingw-w64 + language: cpp + os: linux + dist: trusty + before_script: + - ./installdeps MinGW-w64-x86_64 + script: + - mkdir build + - cd build + - /usr/lib/mxe/usr/bin/x86_64-w64-mingw32.static-cmake .. + - make -j2 + cache: + directories: + - "$HOME/.ccache" + - env: BUILD_ENV=mingw-w32 + language: cpp + os: linux + dist: trusty + before_script: + - ./installdeps MinGW-w64-i686 + script: + - mkdir build + - cd build + - /usr/lib/mxe/usr/bin/i686-w64-mingw32.static-cmake .. + - make -j2 cache: directories: - "$HOME/.ccache" -# - env: BUILD_ENV=mingw-w64 -# language: cpp -# os: linux -# dist: trusty -# before_script: -# - ./installdeps MinGW-w64-x86_64 -# script: -# - mkdir build -# - cd build -# - /usr/lib/mxe/usr/bin/x86_64-w64-mingw32.static-cmake .. -# - make -j2 -# cache: -# directories: -# - "$HOME/.ccache" -# - env: BUILD_ENV=mingw-w32 -# language: cpp -# os: linux -# dist: trusty -# before_script: -# - ./installdeps MinGW-w64-i686 -# script: -# - mkdir build -# - cd build -# - /usr/lib/mxe/usr/bin/i686-w64-mingw32.static-cmake .. -# - make -j2 -# cache: -# directories: -# - "$HOME/.ccache" - env: BUILD_ENV=libretro language: cpp os: linux diff --git a/CMakeLists.txt b/CMakeLists.txt index 8073871a..ff7fb9ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,25 @@ +if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) # link to full path of libs + cmake_policy(SET CMP0005 NEW) # escapes in add_definitions + + if(POLICY CMP0077) + cmake_policy(SET CMP0077 NEW) # use vars for options + endif() + + if(NOT CMAKE_VERSION VERSION_LESS 3.0) + cmake_policy(SET CMP0043 NEW) # for wxWidgets, use generator expressions + endif() +endif() + +option(ENABLE_VCPKG "Use dependencies for Visual Studio from vcpkg" ON) + +set(NLS_DEFAULT ON) + +# get win32 deps before project declaration, because toolchain is set for vcpkg +set(VCPKG_DEPS zlib libpng SDL2 SFML gettext wxWidgets) + +include(${CMAKE_SOURCE_DIR}/cmake/Win32Deps.cmake) + project(VBA-M C CXX) cmake_minimum_required(VERSION 2.8.12) @@ -12,19 +34,13 @@ endif() set(ALL_TARGETS fex visualboyadvance-m vbamcore vbam) -if(COMMAND cmake_policy) - cmake_policy(SET CMP0003 NEW) # link to full path of libs - cmake_policy(SET CMP0005 NEW) # escapes in add_definitions -endif() - -set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) #Output all binaries at top level set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}) option(ENABLE_SDL "Build the SDL port" OFF) option(ENABLE_WX "Build the wxWidgets port" ON) option(ENABLE_DEBUGGER "Enable the debugger" ON) -option(ENABLE_NLS "Enable translations" ON) option(ENABLE_ASAN "Enable -fsanitize=