From 03049a13537994b30547fa94215b7083b3f6ce3e Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Fri, 28 Sep 2018 05:40:36 +0700 Subject: [PATCH 1/2] cmake template --- .gitignore | 2 ++ .gitmodules | 3 ++ CMakeLists.txt | 61 ++++++++++++++++++++++++++++++++ modules/enduro2d | 1 + scripts/build_all.bat | 10 ++++++ scripts/build_all.sh | 5 +++ scripts/build_clear.bat | 9 +++++ scripts/build_clear.sh | 4 +++ scripts/build_debug.bat | 13 +++++++ scripts/build_debug.sh | 8 +++++ scripts/build_release.bat | 13 +++++++ scripts/build_release.sh | 8 +++++ scripts/gen_msvc2017_project.bat | 12 +++++++ scripts/gen_xcode_project.sh | 7 ++++ sources/main.cpp | 26 ++++++++++++++ 15 files changed, 182 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 CMakeLists.txt create mode 160000 modules/enduro2d create mode 100644 scripts/build_all.bat create mode 100755 scripts/build_all.sh create mode 100644 scripts/build_clear.bat create mode 100755 scripts/build_clear.sh create mode 100644 scripts/build_debug.bat create mode 100755 scripts/build_debug.sh create mode 100644 scripts/build_release.bat create mode 100755 scripts/build_release.sh create mode 100644 scripts/gen_msvc2017_project.bat create mode 100755 scripts/gen_xcode_project.sh create mode 100644 sources/main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b829738 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +build/* +CMakeLists.txt.user \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..ffd301a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "modules/enduro2d"] + path = modules/enduro2d + url = https://github.com/enduro2d/enduro2d diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..95554e9 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,61 @@ +cmake_minimum_required(VERSION 3.9.2 FATAL_ERROR) +project(enduro2d-bootstrap) + +# +# linking mode +# + +if(MSVC) + option(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC runtime library DLL" OFF) + if(NOT USE_MSVC_RUNTIME_LIBRARY_DLL) + foreach(flag CMAKE_C_FLAGS + CMAKE_C_FLAGS_DEBUG + CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL + CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS + CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL + CMAKE_CXX_FLAGS_RELWITHDEBINFO) + if(${flag} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${flag} "${${flag}}") + endif() + if(${flag} MATCHES "/MDd") + string(REGEX REPLACE "/MDd" "/MTd" ${flag} "${${flag}}") + endif() + endforeach() + endif() +endif() + +# +# include enduro2d +# + +set(E2D_BUILD_SAMPLES OFF CACHE BOOL "" FORCE) +set(E2D_BUILD_UNTESTS OFF CACHE BOOL "" FORCE) +add_subdirectory(modules/enduro2d) + +# +# project sources +# + +file(GLOB_RECURSE PROJECT_SOURCES + sources/*.*) +source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES + ${PROJECT_SOURCES}) + +# +# project executable +# + +add_executable(${PROJECT_NAME} + ${PROJECT_SOURCES}) +target_link_libraries(${PROJECT_NAME} + ${E2D_LIBRARIES}) +target_include_directories(${PROJECT_NAME} + PRIVATE ${E2D_INCLUDE_DIRS}) +set_target_properties(${PROJECT_NAME} PROPERTIES + CXX_STANDARD 14 + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) diff --git a/modules/enduro2d b/modules/enduro2d new file mode 160000 index 0000000..4335789 --- /dev/null +++ b/modules/enduro2d @@ -0,0 +1 @@ +Subproject commit 433578975d6f7a8e5c4982735ce32c8392692380 diff --git a/scripts/build_all.bat b/scripts/build_all.bat new file mode 100644 index 0000000..03705ec --- /dev/null +++ b/scripts/build_all.bat @@ -0,0 +1,10 @@ +@echo off +set SCRIPT_DIR=%~dp0% +%SCRIPT_DIR%\build_debug.bat || goto :error +%SCRIPT_DIR%\build_release.bat || goto :error + +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/scripts/build_all.sh b/scripts/build_all.sh new file mode 100755 index 0000000..d9cd585 --- /dev/null +++ b/scripts/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -e +SCRIPT_DIR=`dirname "$BASH_SOURCE"` +$SCRIPT_DIR/build_debug.sh +$SCRIPT_DIR/build_release.sh diff --git a/scripts/build_clear.bat b/scripts/build_clear.bat new file mode 100644 index 0000000..44375fb --- /dev/null +++ b/scripts/build_clear.bat @@ -0,0 +1,9 @@ +@echo off +set BUILD_DIR=%~dp0%\..\build +rmdir /s /q %BUILD_DIR% || goto :error + +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/scripts/build_clear.sh b/scripts/build_clear.sh new file mode 100755 index 0000000..ef8a2e3 --- /dev/null +++ b/scripts/build_clear.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -e +BUILD_DIR=`dirname "$BASH_SOURCE"`/../build +rm -rf $BUILD_DIR diff --git a/scripts/build_debug.bat b/scripts/build_debug.bat new file mode 100644 index 0000000..285bbb2 --- /dev/null +++ b/scripts/build_debug.bat @@ -0,0 +1,13 @@ +@echo off +set BUILD_DIR=%~dp0%\..\build +mkdir %BUILD_DIR%\debug || goto :error +cd %BUILD_DIR%\debug || goto :error +cmake ../.. || goto :error +cmake --build . --config Debug || goto :error +cd ..\.. || goto :error + +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/scripts/build_debug.sh b/scripts/build_debug.sh new file mode 100755 index 0000000..aa76684 --- /dev/null +++ b/scripts/build_debug.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e +BUILD_DIR=`dirname "$BASH_SOURCE"`/../build +mkdir -p $BUILD_DIR/debug +cd $BUILD_DIR/debug +cmake -DCMAKE_BUILD_TYPE=Debug ../.. +cmake --build . -- -j8 +cd ../.. diff --git a/scripts/build_release.bat b/scripts/build_release.bat new file mode 100644 index 0000000..400a355 --- /dev/null +++ b/scripts/build_release.bat @@ -0,0 +1,13 @@ +@echo off +set BUILD_DIR=%~dp0%\..\build +mkdir %BUILD_DIR%\release || goto :error +cd %BUILD_DIR%\release || goto :error +cmake ../.. || goto :error +cmake --build . --config Release || goto :error +cd ..\.. || goto :error + +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/scripts/build_release.sh b/scripts/build_release.sh new file mode 100755 index 0000000..38ad788 --- /dev/null +++ b/scripts/build_release.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e +BUILD_DIR=`dirname "$BASH_SOURCE"`/../build +mkdir -p $BUILD_DIR/release +cd $BUILD_DIR/release +cmake -DCMAKE_BUILD_TYPE=Release ../.. +cmake --build . -- -j8 +cd ../.. diff --git a/scripts/gen_msvc2017_project.bat b/scripts/gen_msvc2017_project.bat new file mode 100644 index 0000000..e10f813 --- /dev/null +++ b/scripts/gen_msvc2017_project.bat @@ -0,0 +1,12 @@ +@echo off +set BUILD_DIR=%~dp0%\..\build +mkdir %BUILD_DIR%\msvc2017 || goto :error +cd %BUILD_DIR%\msvc2017 || goto :error +cmake -G "Visual Studio 15 2017" ..\.. || goto :error +start enduro2d-bootstrap.sln || goto :error + +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/scripts/gen_xcode_project.sh b/scripts/gen_xcode_project.sh new file mode 100755 index 0000000..323a694 --- /dev/null +++ b/scripts/gen_xcode_project.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e +BUILD_DIR=`dirname "$BASH_SOURCE"`/../build +mkdir -p $BUILD_DIR/xcode +cd $BUILD_DIR/xcode +cmake -G Xcode ../.. +open enduro2d-bootstrap.xcodeproj diff --git a/sources/main.cpp b/sources/main.cpp new file mode 100644 index 0000000..a6e25d7 --- /dev/null +++ b/sources/main.cpp @@ -0,0 +1,26 @@ +/******************************************************************************* + * This file is part of the "Enduro2D" + * For conditions of distribution and use, see copyright notice in LICENSE.md + * Copyright (C) 2018 Matvey Cherevko + ******************************************************************************/ + +#include +using namespace e2d; + +int e2d_main() { + input& i = modules::initialize(); + debug& d = modules::initialize(); + window& w = modules::initialize( + v2u{640, 480}, "Enduro2D", true, false); + + d.add_sink(); + w.register_event_listener(i); + + const keyboard& k = i.keyboard(); + while ( !w.should_close() && !k.is_key_just_released(keyboard_key::escape) ) { + i.frame_tick(); + w.swap_buffers(); + window::frame_tick(); + } + return 0; +} From 3c4c6cfc53fe1dd07aa48d90c99f1436573788a5 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Fri, 28 Sep 2018 05:41:40 +0700 Subject: [PATCH 2/2] add ci scripts --- .appveyor.yml | 11 ++++++++ .travis.yml | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 .appveyor.yml create mode 100644 .travis.yml diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 0000000..df304d8 --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,11 @@ +version: "{build}" +image: + - Visual Studio 2015 + - Visual Studio 2017 +platform: + - Win32 + - x64 +build_script: + - git submodule update --init --recursive + - scripts\build_all.bat +test: off diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..b16ae35 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,77 @@ +language: cpp +matrix: + include: + - os: linux + dist: trusty + addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-4.9"] } } + env: MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" + - os: linux + dist: trusty + addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-5"] } } + env: MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" + - os: linux + dist: trusty + addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-6"] } } + env: MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + - os: linux + dist: trusty + addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-7"] } } + env: MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" + - os: linux + dist: trusty + addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-8"] } } + env: MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-precise-3.6"], packages: ["xorg-dev", "clang-3.6", "g++-5"] } } + env: MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-precise-3.7"], packages: ["xorg-dev", "clang-3.7", "g++-5"] } } + env: MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-precise-3.8"], packages: ["xorg-dev", "clang-3.8", "g++-5"] } } + env: MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-precise-3.9"], packages: ["xorg-dev", "clang-3.9", "g++-5"] } } + env: MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-4.0"], packages: ["xorg-dev", "clang-4.0", "g++-5"] } } + env: MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-5.0"], packages: ["xorg-dev", "clang-5.0", "g++-7"] } } + env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-6.0"], packages: ["xorg-dev", "clang-6.0", "g++-7"] } } + env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" + - os: osx + osx_image: xcode8.3 + compiler: clang + - os: osx + osx_image: xcode9 + compiler: clang + - os: osx + osx_image: xcode9.1 + compiler: clang + - os: osx + osx_image: xcode9.2 + compiler: clang + - os: osx + osx_image: xcode9.3 + compiler: clang + - os: osx + osx_image: xcode9.4 + compiler: clang + - os: osx + osx_image: xcode10 + compiler: clang +before_install: + - eval "${MATRIX_EVAL}" +script: + - git submodule update --init --recursive + - ./scripts/build_all.sh