From c757639bed56c4f49d2234c09f39954a8e73ebf4 Mon Sep 17 00:00:00 2001 From: RickaPrincy Date: Sat, 23 Aug 2025 18:03:11 +0300 Subject: [PATCH 1/3] deps: add msdf-atlas-gen --- .gitmodules | 3 +++ external/msdf-atlas-gen | 1 + 2 files changed, 4 insertions(+) create mode 160000 external/msdf-atlas-gen diff --git a/.gitmodules b/.gitmodules index 95a1a59..b2bc227 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "external/earcut"] path = external/earcut url = https://github.com/mapbox/earcut.hpp +[submodule "external/msdf-atlas-gen"] + path = external/msdf-atlas-gen + url = https://github.com/Chlumsky/msdf-atlas-gen diff --git a/external/msdf-atlas-gen b/external/msdf-atlas-gen new file mode 160000 index 0000000..77804c2 --- /dev/null +++ b/external/msdf-atlas-gen @@ -0,0 +1 @@ +Subproject commit 77804c2f4108f49eb73491cda9296a2afb714d4c From 5bbfe64fe8e275e69f330e333cfcdbdd7ad44136 Mon Sep 17 00:00:00 2001 From: RickaPrincy Date: Sat, 23 Aug 2025 21:43:05 +0300 Subject: [PATCH 2/3] feat: migrate to vcpkg --- .gitignore | 3 + .gitmodules | 9 - CMakeLists.txt | 25 +- CMakePresets.json | 31 +++ cmake/FindSDL2.cmake | 388 -------------------------------- cmake/FindSDL2_image.cmake | 222 ------------------ cmake/FindSDL2_ttf.cmake | 224 ------------------ examples/main.cpp | 7 +- external/earcut | 1 - external/glm | 1 - external/msdf-atlas-gen | 1 - sources/CMakeLists.txt | 23 +- sources/core/colored_shape.cpp | 1 + sources/core/shape.cpp | 1 + sources/core/textured_shape.cpp | 1 + vcpkg.json | 11 + 16 files changed, 67 insertions(+), 882 deletions(-) delete mode 100644 .gitmodules create mode 100644 CMakePresets.json delete mode 100644 cmake/FindSDL2.cmake delete mode 100644 cmake/FindSDL2_image.cmake delete mode 100644 cmake/FindSDL2_ttf.cmake delete mode 160000 external/earcut delete mode 160000 external/glm delete mode 160000 external/msdf-atlas-gen create mode 100644 vcpkg.json diff --git a/.gitignore b/.gitignore index f7c0de8..f978e27 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,6 @@ example/build *cmake-tools* out release +vcpkg_installed +CMakeUserPresets.json +.idea \ No newline at end of file diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index b2bc227..0000000 --- a/.gitmodules +++ /dev/null @@ -1,9 +0,0 @@ -[submodule "external/glm"] - path = external/glm - url = https://github.com/g-truc/glm.git -[submodule "external/earcut"] - path = external/earcut - url = https://github.com/mapbox/earcut.hpp -[submodule "external/msdf-atlas-gen"] - path = external/msdf-atlas-gen - url = https://github.com/Chlumsky/msdf-atlas-gen diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e07ab7..c4dd55c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,27 +8,12 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # SDL2 -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) -find_package(SDL2 REQUIRED) -find_package(SDL2_image REQUIRED) find_package(Freetype REQUIRED) +find_package(glm CONFIG REQUIRED) +find_package(SDL2 CONFIG REQUIRED) +find_package(SDL2_image CONFIG REQUIRED) +find_path(EARCUT_HPP_INCLUDE_DIRS "mapbox/earcut.hpp") -# Download git submodule -message(STATUS "Updating all submodules recursively...") -execute_process( - COMMAND git submodule update --init --recursive - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - RESULT_VARIABLE res - OUTPUT_VARIABLE out - ERROR_VARIABLE err - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_STRIP_TRAILING_WHITESPACE -) -if(NOT res EQUAL 0) - message(WARNING "Recursive submodule update failed: ${err}") -else() - message(STATUS "All submodules updated recursively.") -endif() set(SDLK_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(SDLK_IS_MAIN_PROJECT OFF) @@ -42,12 +27,12 @@ set(SDLK_LIB_VERSION ${PROJECT_VERSION}) set(SDLK_LIB_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) set(SDLK_VERSION ${PROJECT_VERSION}) set(SDLK_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) -set(SDLK_BUILD_EXAMPLE OFF) # list of options option(BUILD_SHARED_LIBS "Build rcli as a shared library" ON) option(SDLK_LIB_BUILD "Build sdlk lib" ON) option(SDLK_LIB_INSTALL "Install sdlk lib" OFF) +option(SDLK_BUILD_EXAMPLE "Build sdlk example" OFF) # configure build type if(NOT CMAKE_BUILD_TYPE) diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..b29e536 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,31 @@ +{ + "version": 2, + "configurePresets": [ + { + "name": "vcpkg", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build/${presetName}", + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" + } + }, + { + "name": "vcpkg-debug", + "inherits": "vcpkg", + "displayName": "Build with vcpkg (Debug)", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "SDLK_BUILD_EXAMPLE": "ON" + } + }, + { + "name": "vcpkg-release", + "inherits": "vcpkg", + "displayName": "Build with vcpkg (Release)", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "SDLK_BUILD_EXAMPLE": "OFF" + } + } + ] +} \ No newline at end of file diff --git a/cmake/FindSDL2.cmake b/cmake/FindSDL2.cmake deleted file mode 100644 index 2445d36..0000000 --- a/cmake/FindSDL2.cmake +++ /dev/null @@ -1,388 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -# Copyright 2019 Amine Ben Hassouna -# Copyright 2000-2019 Kitware, Inc. and Contributors -# All rights reserved. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: - -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. - -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. - -# * Neither the name of Kitware, Inc. nor the names of Contributors -# may be used to endorse or promote products derived from this -# software without specific prior written permission. - -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#[=======================================================================[.rst: -FindSDL2 --------- - -Locate SDL2 library - -This module defines the following 'IMPORTED' targets: - -:: - - SDL2::Core - The SDL2 library, if found. - Libraries should link to SDL2::Core - - SDL2::Main - The SDL2main library, if found. - Applications should link to SDL2::Main instead of SDL2::Core - - - -This module will set the following variables in your project: - -:: - - SDL2_LIBRARIES, the name of the library to link against - SDL2_INCLUDE_DIRS, where to find SDL.h - SDL2_FOUND, if false, do not try to link to SDL2 - SDL2MAIN_FOUND, if false, do not try to link to SDL2main - SDL2_VERSION_STRING, human-readable string containing the version of SDL2 - - - -This module responds to the following cache variables: - -:: - - SDL2_PATH - Set a custom SDL2 Library path (default: empty) - - SDL2_NO_DEFAULT_PATH - Disable search SDL2 Library in default path. - If SDL2_PATH (default: ON) - Else (default: OFF) - - SDL2_INCLUDE_DIR - SDL2 headers path. - - SDL2_LIBRARY - SDL2 Library (.dll, .so, .a, etc) path. - - SDL2MAIN_LIBRAY - SDL2main Library (.a) path. - - SDL2_BUILDING_LIBRARY - This flag is useful only when linking to SDL2_LIBRARIES insead of - SDL2::Main. It is required only when building a library that links to - SDL2_LIBRARIES, because only applications need main() (No need to also - link to SDL2main). - If this flag is defined, then no SDL2main will be added to SDL2_LIBRARIES - and no SDL2::Main target will be created. - - -Don't forget to include SDLmain.h and SDLmain.m in your project for the -OS X framework based version. (Other versions link to -lSDL2main which -this module will try to find on your behalf.) Also for OS X, this -module will automatically add the -framework Cocoa on your behalf. - - -Additional Note: If you see an empty SDL2_LIBRARY in your project -configuration, it means CMake did not find your SDL2 library -(SDL2.dll, libsdl2.so, SDL2.framework, etc). Set SDL2_LIBRARY to point -to your SDL2 library, and configure again. Similarly, if you see an -empty SDL2MAIN_LIBRARY, you should set this value as appropriate. These -values are used to generate the final SDL2_LIBRARIES variable and the -SDL2::Core and SDL2::Main targets, but when these values are unset, -SDL2_LIBRARIES, SDL2::Core and SDL2::Main does not get created. - - -$SDL2DIR is an environment variable that would correspond to the -./configure --prefix=$SDL2DIR used in building SDL2. l.e.galup 9-20-02 - - - -Created by Amine Ben Hassouna: - Adapt FindSDL.cmake to SDL2 (FindSDL2.cmake). - Add cache variables for more flexibility: - SDL2_PATH, SDL2_NO_DEFAULT_PATH (for details, see doc above). - Mark 'Threads' as a required dependency for non-OSX systems. - Modernize the FindSDL2.cmake module by creating specific targets: - SDL2::Core and SDL2::Main (for details, see doc above). - - -Original FindSDL.cmake module: - Modified by Eric Wing. Added code to assist with automated building - by using environmental variables and providing a more - controlled/consistent search behavior. Added new modifications to - recognize OS X frameworks and additional Unix paths (FreeBSD, etc). - Also corrected the header search path to follow "proper" SDL - guidelines. Added a search for SDLmain which is needed by some - platforms. Added a search for threads which is needed by some - platforms. Added needed compile switches for MinGW. - -On OSX, this will prefer the Framework version (if found) over others. -People will have to manually change the cache value of SDL2_LIBRARY to -override this selection or set the SDL2_PATH variable or the CMake -environment CMAKE_INCLUDE_PATH to modify the search paths. - -Note that the header path has changed from SDL/SDL.h to just SDL.h -This needed to change because "proper" SDL convention is #include -"SDL.h", not . This is done for portability reasons -because not all systems place things in SDL/ (see FreeBSD). -#]=======================================================================] - -# Define options for searching SDL2 Library in a custom path - -set(SDL2_PATH "" CACHE STRING "Custom SDL2 Library path") - -set(_SDL2_NO_DEFAULT_PATH OFF) -if(SDL2_PATH) - set(_SDL2_NO_DEFAULT_PATH ON) -endif() - -set(SDL2_NO_DEFAULT_PATH ${_SDL2_NO_DEFAULT_PATH} - CACHE BOOL "Disable search SDL2 Library in default path") -unset(_SDL2_NO_DEFAULT_PATH) - -set(SDL2_NO_DEFAULT_PATH_CMD) -if(SDL2_NO_DEFAULT_PATH) - set(SDL2_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH) -endif() - -# Search for the SDL2 include directory -find_path(SDL2_INCLUDE_DIR SDL.h - HINTS - ENV SDL2DIR - ${SDL2_NO_DEFAULT_PATH_CMD} - PATH_SUFFIXES SDL2 - # path suffixes to search inside ENV{SDL2DIR} - include/SDL2 include - PATHS ${SDL2_PATH} - DOC "Where the SDL2 headers can be found" -) - -set(SDL2_INCLUDE_DIRS "${SDL2_INCLUDE_DIR}") - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(VC_LIB_PATH_SUFFIX lib/x64) -else() - set(VC_LIB_PATH_SUFFIX lib/x86) -endif() - -# SDL-2.0 is the name used by FreeBSD ports... -# don't confuse it for the version number. -find_library(SDL2_LIBRARY - NAMES SDL2 SDL-2.0 - HINTS - ENV SDL2DIR - ${SDL2_NO_DEFAULT_PATH_CMD} - PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX} - PATHS ${SDL2_PATH} - DOC "Where the SDL2 Library can be found" -) - -set(SDL2_LIBRARIES "${SDL2_LIBRARY}") - -if(NOT SDL2_BUILDING_LIBRARY) - if(NOT SDL2_INCLUDE_DIR MATCHES ".framework") - # Non-OS X framework versions expect you to also dynamically link to - # SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms - # seem to provide SDL2main for compatibility even though they don't - # necessarily need it. - - if(SDL2_PATH) - set(SDL2MAIN_LIBRARY_PATHS "${SDL2_PATH}") - endif() - - if(NOT SDL2_NO_DEFAULT_PATH) - set(SDL2MAIN_LIBRARY_PATHS - /sw - /opt/local - /opt/csw - /opt - "${SDL2MAIN_LIBRARY_PATHS}" - ) - endif() - - find_library(SDL2MAIN_LIBRARY - NAMES SDL2main - HINTS - ENV SDL2DIR - ${SDL2_NO_DEFAULT_PATH_CMD} - PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX} - PATHS ${SDL2MAIN_LIBRARY_PATHS} - DOC "Where the SDL2main library can be found" - ) - unset(SDL2MAIN_LIBRARY_PATHS) - endif() -endif() - -# SDL2 may require threads on your system. -# The Apple build may not need an explicit flag because one of the -# frameworks may already provide it. -# But for non-OSX systems, I will use the CMake Threads package. -if(NOT APPLE) - find_package(Threads QUIET) - if(NOT Threads_FOUND) - set(SDL2_THREADS_NOT_FOUND "Could NOT find Threads (Threads is required by SDL2).") - if(SDL2_FIND_REQUIRED) - message(FATAL_ERROR ${SDL2_THREADS_NOT_FOUND}) - else() - if(NOT SDL2_FIND_QUIETLY) - message(STATUS ${SDL2_THREADS_NOT_FOUND}) - endif() - return() - endif() - unset(SDL2_THREADS_NOT_FOUND) - endif() -endif() - -# MinGW needs an additional link flag, -mwindows -# It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -mwindows -if(MINGW) - set(MINGW32_LIBRARY mingw32 "-mwindows" CACHE STRING "link flags for MinGW") -endif() - -if(SDL2_LIBRARY) - # For SDL2main - if(SDL2MAIN_LIBRARY AND NOT SDL2_BUILDING_LIBRARY) - list(FIND SDL2_LIBRARIES "${SDL2MAIN_LIBRARY}" _SDL2_MAIN_INDEX) - if(_SDL2_MAIN_INDEX EQUAL -1) - set(SDL2_LIBRARIES "${SDL2MAIN_LIBRARY}" ${SDL2_LIBRARIES}) - endif() - unset(_SDL2_MAIN_INDEX) - endif() - - # For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa. - # CMake doesn't display the -framework Cocoa string in the UI even - # though it actually is there if I modify a pre-used variable. - # I think it has something to do with the CACHE STRING. - # So I use a temporary variable until the end so I can set the - # "real" variable in one-shot. - if(APPLE) - set(SDL2_LIBRARIES ${SDL2_LIBRARIES} -framework Cocoa) - endif() - - # For threads, as mentioned Apple doesn't need this. - # In fact, there seems to be a problem if I used the Threads package - # and try using this line, so I'm just skipping it entirely for OS X. - if(NOT APPLE) - set(SDL2_LIBRARIES ${SDL2_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - endif() - - # For MinGW library - if(MINGW) - set(SDL2_LIBRARIES ${MINGW32_LIBRARY} ${SDL2_LIBRARIES}) - endif() - -endif() - -# Read SDL2 version -if(SDL2_INCLUDE_DIR AND EXISTS "${SDL2_INCLUDE_DIR}/SDL_version.h") - file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+[0-9]+$") - file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MINOR_VERSION[ \t]+[0-9]+$") - file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_PATCHLEVEL[ \t]+[0-9]+$") - string(REGEX REPLACE "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_MAJOR "${SDL2_VERSION_MAJOR_LINE}") - string(REGEX REPLACE "^#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_MINOR "${SDL2_VERSION_MINOR_LINE}") - string(REGEX REPLACE "^#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_PATCH "${SDL2_VERSION_PATCH_LINE}") - set(SDL2_VERSION_STRING ${SDL2_VERSION_MAJOR}.${SDL2_VERSION_MINOR}.${SDL2_VERSION_PATCH}) - unset(SDL2_VERSION_MAJOR_LINE) - unset(SDL2_VERSION_MINOR_LINE) - unset(SDL2_VERSION_PATCH_LINE) - unset(SDL2_VERSION_MAJOR) - unset(SDL2_VERSION_MINOR) - unset(SDL2_VERSION_PATCH) -endif() - -include(FindPackageHandleStandardArgs) - -FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 - REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR - VERSION_VAR SDL2_VERSION_STRING) - -if(SDL2MAIN_LIBRARY) - FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2main - REQUIRED_VARS SDL2MAIN_LIBRARY SDL2_INCLUDE_DIR - VERSION_VAR SDL2_VERSION_STRING) -endif() - - -mark_as_advanced(SDL2_PATH - SDL2_NO_DEFAULT_PATH - SDL2_LIBRARY - SDL2MAIN_LIBRARY - SDL2_INCLUDE_DIR - SDL2_BUILDING_LIBRARY) - - -# SDL2:: targets (SDL2::Core and SDL2::Main) -if(SDL2_FOUND) - - # SDL2::Core target - if(SDL2_LIBRARY AND NOT TARGET SDL2::Core) - add_library(SDL2::Core UNKNOWN IMPORTED) - set_target_properties(SDL2::Core PROPERTIES - IMPORTED_LOCATION "${SDL2_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}") - - if(APPLE) - # For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa. - # For more details, please see above. - set_property(TARGET SDL2::Core APPEND PROPERTY - INTERFACE_LINK_OPTIONS -framework Cocoa) - else() - # For threads, as mentioned Apple doesn't need this. - # For more details, please see above. - set_property(TARGET SDL2::Core APPEND PROPERTY - INTERFACE_LINK_LIBRARIES Threads::Threads) - endif() - endif() - - # SDL2::Main target - # Applications should link to SDL2::Main instead of SDL2::Core - # For more details, please see above. - if(NOT SDL2_BUILDING_LIBRARY AND NOT TARGET SDL2::Main) - - if(SDL2_INCLUDE_DIR MATCHES ".framework" OR NOT SDL2MAIN_LIBRARY) - add_library(SDL2::Main INTERFACE IMPORTED) - set_property(TARGET SDL2::Main PROPERTY - INTERFACE_LINK_LIBRARIES SDL2::Core) - elseif(SDL2MAIN_LIBRARY) - # MinGW requires that the mingw32 library is specified before the - # libSDL2main.a static library when linking. - # The SDL2::MainInternal target is used internally to make sure that - # CMake respects this condition. - add_library(SDL2::MainInternal UNKNOWN IMPORTED) - set_property(TARGET SDL2::MainInternal PROPERTY - IMPORTED_LOCATION "${SDL2MAIN_LIBRARY}") - set_property(TARGET SDL2::MainInternal PROPERTY - INTERFACE_LINK_LIBRARIES SDL2::Core) - - add_library(SDL2::Main INTERFACE IMPORTED) - - if(MINGW) - # MinGW needs an additional link flag '-mwindows' and link to mingw32 - set_property(TARGET SDL2::Main PROPERTY - INTERFACE_LINK_LIBRARIES "mingw32" "-mwindows") - endif() - - set_property(TARGET SDL2::Main APPEND PROPERTY - INTERFACE_LINK_LIBRARIES SDL2::MainInternal) - endif() - - endif() -endif() diff --git a/cmake/FindSDL2_image.cmake b/cmake/FindSDL2_image.cmake deleted file mode 100644 index 624e915..0000000 --- a/cmake/FindSDL2_image.cmake +++ /dev/null @@ -1,222 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -# Copyright 2019 Amine Ben Hassouna -# Copyright 2000-2019 Kitware, Inc. and Contributors -# All rights reserved. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: - -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. - -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. - -# * Neither the name of Kitware, Inc. nor the names of Contributors -# may be used to endorse or promote products derived from this -# software without specific prior written permission. - -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#[=======================================================================[.rst: -FindSDL2_image --------------- - -Locate SDL2_image library - -This module defines the following 'IMPORTED' target: - -:: - - SDL2::Image - The SDL2_image library, if found. - Have SDL2::Core as a link dependency. - - - -This module will set the following variables in your project: - -:: - - SDL2_IMAGE_LIBRARIES, the name of the library to link against - SDL2_IMAGE_INCLUDE_DIRS, where to find the headers - SDL2_IMAGE_FOUND, if false, do not try to link against - SDL2_IMAGE_VERSION_STRING - human-readable string containing the - version of SDL2_image - - - -This module responds to the following cache variables: - -:: - - SDL2_IMAGE_PATH - Set a custom SDL2_image Library path (default: empty) - - SDL2_IMAGE_NO_DEFAULT_PATH - Disable search SDL2_image Library in default path. - If SDL2_IMAGE_PATH (default: ON) - Else (default: OFF) - - SDL2_IMAGE_INCLUDE_DIR - SDL2_image headers path. - - SDL2_IMAGE_LIBRARY - SDL2_image Library (.dll, .so, .a, etc) path. - - -Additional Note: If you see an empty SDL2_IMAGE_LIBRARY in your project -configuration, it means CMake did not find your SDL2_image library -(SDL2_image.dll, libsdl2_image.so, etc). Set SDL2_IMAGE_LIBRARY to point -to your SDL2_image library, and configure again. This value is used to -generate the final SDL2_IMAGE_LIBRARIES variable and the SDL2::Image target, -but when this value is unset, SDL2_IMAGE_LIBRARIES and SDL2::Image does not -get created. - - -$SDL2IMAGEDIR is an environment variable that would correspond to the -./configure --prefix=$SDL2IMAGEDIR used in building SDL2_image. - -$SDL2DIR is an environment variable that would correspond to the -./configure --prefix=$SDL2DIR used in building SDL2. - - - -Created by Amine Ben Hassouna: - Adapt FindSDL_image.cmake to SDL2_image (FindSDL2_image.cmake). - Add cache variables for more flexibility: - SDL2_IMAGE_PATH, SDL2_IMAGE_NO_DEFAULT_PATH (for details, see doc above). - Add SDL2 as a required dependency. - Modernize the FindSDL2_image.cmake module by creating a specific target: - SDL2::Image (for details, see doc above). - -Original FindSDL_image.cmake module: - Created by Eric Wing. This was influenced by the FindSDL.cmake - module, but with modifications to recognize OS X frameworks and - additional Unix paths (FreeBSD, etc). -#]=======================================================================] - -# SDL2 Library required -find_package(SDL2 QUIET) -if(NOT SDL2_FOUND) - set(SDL2_IMAGE_SDL2_NOT_FOUND "Could NOT find SDL2 (SDL2 is required by SDL2_image).") - if(SDL2_image_FIND_REQUIRED) - message(FATAL_ERROR ${SDL2_IMAGE_SDL2_NOT_FOUND}) - else() - if(NOT SDL2_image_FIND_QUIETLY) - message(STATUS ${SDL2_IMAGE_SDL2_NOT_FOUND}) - endif() - return() - endif() - unset(SDL2_IMAGE_SDL2_NOT_FOUND) -endif() - - -# Define options for searching SDL2_image Library in a custom path - -set(SDL2_IMAGE_PATH "" CACHE STRING "Custom SDL2_image Library path") - -set(_SDL2_IMAGE_NO_DEFAULT_PATH OFF) -if(SDL2_IMAGE_PATH) - set(_SDL2_IMAGE_NO_DEFAULT_PATH ON) -endif() - -set(SDL2_IMAGE_NO_DEFAULT_PATH ${_SDL2_IMAGE_NO_DEFAULT_PATH} - CACHE BOOL "Disable search SDL2_image Library in default path") -unset(_SDL2_IMAGE_NO_DEFAULT_PATH) - -set(SDL2_IMAGE_NO_DEFAULT_PATH_CMD) -if(SDL2_IMAGE_NO_DEFAULT_PATH) - set(SDL2_IMAGE_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH) -endif() - -# Search for the SDL2_image include directory -find_path(SDL2_IMAGE_INCLUDE_DIR SDL_image.h - HINTS - ENV SDL2IMAGEDIR - ENV SDL2DIR - ${SDL2_IMAGE_NO_DEFAULT_PATH_CMD} - PATH_SUFFIXES SDL2 - # path suffixes to search inside ENV{SDL2DIR} - # and ENV{SDL2IMAGEDIR} - include/SDL2 include - PATHS ${SDL2_IMAGE_PATH} - DOC "Where the SDL2_image headers can be found" -) - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(VC_LIB_PATH_SUFFIX lib/x64) -else() - set(VC_LIB_PATH_SUFFIX lib/x86) -endif() - -# Search for the SDL2_image library -find_library(SDL2_IMAGE_LIBRARY - NAMES SDL2_image - HINTS - ENV SDL2IMAGEDIR - ENV SDL2DIR - ${SDL2_IMAGE_NO_DEFAULT_PATH_CMD} - PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX} - PATHS ${SDL2_IMAGE_PATH} - DOC "Where the SDL2_image Library can be found" -) - -# Read SDL2_image version -if(SDL2_IMAGE_INCLUDE_DIR AND EXISTS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h") - file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+[0-9]+$") - file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_IMAGE_MINOR_VERSION[ \t]+[0-9]+$") - file(STRINGS "${SDL2_IMAGE_INCLUDE_DIR}/SDL_image.h" SDL2_IMAGE_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_IMAGE_PATCHLEVEL[ \t]+[0-9]+$") - string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_MAJOR "${SDL2_IMAGE_VERSION_MAJOR_LINE}") - string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_MINOR "${SDL2_IMAGE_VERSION_MINOR_LINE}") - string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_IMAGE_VERSION_PATCH "${SDL2_IMAGE_VERSION_PATCH_LINE}") - set(SDL2_IMAGE_VERSION_STRING ${SDL2_IMAGE_VERSION_MAJOR}.${SDL2_IMAGE_VERSION_MINOR}.${SDL2_IMAGE_VERSION_PATCH}) - unset(SDL2_IMAGE_VERSION_MAJOR_LINE) - unset(SDL2_IMAGE_VERSION_MINOR_LINE) - unset(SDL2_IMAGE_VERSION_PATCH_LINE) - unset(SDL2_IMAGE_VERSION_MAJOR) - unset(SDL2_IMAGE_VERSION_MINOR) - unset(SDL2_IMAGE_VERSION_PATCH) -endif() - -set(SDL2_IMAGE_LIBRARIES ${SDL2_IMAGE_LIBRARY}) -set(SDL2_IMAGE_INCLUDE_DIRS ${SDL2_IMAGE_INCLUDE_DIR}) - -include(FindPackageHandleStandardArgs) - -FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2_image - REQUIRED_VARS SDL2_IMAGE_LIBRARIES SDL2_IMAGE_INCLUDE_DIRS - VERSION_VAR SDL2_IMAGE_VERSION_STRING) - - -mark_as_advanced(SDL2_IMAGE_PATH - SDL2_IMAGE_NO_DEFAULT_PATH - SDL2_IMAGE_LIBRARY - SDL2_IMAGE_INCLUDE_DIR) - - -if(SDL2_IMAGE_FOUND) - - # SDL2::Image target - if(SDL2_IMAGE_LIBRARY AND NOT TARGET SDL2::Image) - add_library(SDL2::Image UNKNOWN IMPORTED) - set_target_properties(SDL2::Image PROPERTIES - IMPORTED_LOCATION "${SDL2_IMAGE_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_IMAGE_INCLUDE_DIR}" - INTERFACE_LINK_LIBRARIES SDL2::Core) - endif() -endif() diff --git a/cmake/FindSDL2_ttf.cmake b/cmake/FindSDL2_ttf.cmake deleted file mode 100644 index 97d0b06..0000000 --- a/cmake/FindSDL2_ttf.cmake +++ /dev/null @@ -1,224 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -# Copyright 2019 Amine Ben Hassouna Copyright -# 2000-2019 Kitware, Inc. and Contributors All rights reserved. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: - -# * Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. - -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. - -# * Neither the name of Kitware, Inc. nor the names of Contributors may be used -# to endorse or promote products derived from this software without specific -# prior written permission. - -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#[=======================================================================[.rst: -FindSDL2_ttf ------------- - -Locate SDL2_ttf library - -This module defines the following 'IMPORTED' target: - -:: - - SDL2::TTF - The SDL2_ttf library, if found. - Have SDL2::Core as a link dependency. - - - -This module will set the following variables in your project: - -:: - - SDL2_TTF_LIBRARIES, the name of the library to link against - SDL2_TTF_INCLUDE_DIRS, where to find the headers - SDL2_TTF_FOUND, if false, do not try to link against - SDL2_TTF_VERSION_STRING - human-readable string containing the - version of SDL2_ttf - - - -This module responds to the following cache variables: - -:: - - SDL2_TTF_PATH - Set a custom SDL2_ttf Library path (default: empty) - - SDL2_TTF_NO_DEFAULT_PATH - Disable search SDL2_ttf Library in default path. - If SDL2_TTF_PATH (default: ON) - Else (default: OFF) - - SDL2_TTF_INCLUDE_DIR - SDL2_ttf headers path. - - SDL2_TTF_LIBRARY - SDL2_ttf Library (.dll, .so, .a, etc) path. - - -Additional Note: If you see an empty SDL2_TTF_LIBRARY in your project -configuration, it means CMake did not find your SDL2_ttf library -(SDL2_ttf.dll, libsdl2_ttf.so, etc). Set SDL2_TTF_LIBRARY to point -to your SDL2_ttf library, and configure again. This value is used to -generate the final SDL2_TTF_LIBRARIES variable and the SDL2::TTF target, -but when this value is unset, SDL2_TTF_LIBRARIES and SDL2::TTF does not -get created. - - -$SDL2TTFDIR is an environment variable that would correspond to the -./configure --prefix=$SDL2TTFDIR used in building SDL2_ttf. - -$SDL2DIR is an environment variable that would correspond to the -./configure --prefix=$SDL2DIR used in building SDL2. - - - -Created by Amine Ben Hassouna: - Adapt FindSDL_ttf.cmake to SDL2_ttf (FindSDL2_ttf.cmake). - Add cache variables for more flexibility: - SDL2_TTF_PATH, SDL2_TTF_NO_DEFAULT_PATH (for details, see doc above). - Add SDL2 as a required dependency. - Modernize the FindSDL2_ttf.cmake module by creating a specific target: - SDL2::TTF (for details, see doc above). - -Original FindSDL_ttf.cmake module: - Created by Eric Wing. This was influenced by the FindSDL.cmake - module, but with modifications to recognize OS X frameworks and - additional Unix paths (FreeBSD, etc). -#]=======================================================================] - -# SDL2 Library required -find_package(SDL2 QUIET) -if(NOT SDL2_FOUND) - set(SDL2_TTF_SDL2_NOT_FOUND - "Could NOT find SDL2 (SDL2 is required by SDL2_ttf).") - if(SDL2_ttf_FIND_REQUIRED) - message(FATAL_ERROR ${SDL2_TTF_SDL2_NOT_FOUND}) - else() - if(NOT SDL2_ttf_FIND_QUIETLY) - message(STATUS ${SDL2_TTF_SDL2_NOT_FOUND}) - endif() - return() - endif() - unset(SDL2_TTF_SDL2_NOT_FOUND) -endif() - -# Define options for searching SDL2_ttf Library in a custom path - -set(SDL2_TTF_PATH - "" - CACHE STRING "Custom SDL2_ttf Library path") - -set(_SDL2_TTF_NO_DEFAULT_PATH OFF) -if(SDL2_TTF_PATH) - set(_SDL2_TTF_NO_DEFAULT_PATH ON) -endif() - -set(SDL2_TTF_NO_DEFAULT_PATH - ${_SDL2_TTF_NO_DEFAULT_PATH} - CACHE BOOL "Disable search SDL2_ttf Library in default path") -unset(_SDL2_TTF_NO_DEFAULT_PATH) - -set(SDL2_TTF_NO_DEFAULT_PATH_CMD) -if(SDL2_TTF_NO_DEFAULT_PATH) - set(SDL2_TTF_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH) -endif() - -# Search for the SDL2_ttf include directory -find_path( - SDL2_TTF_INCLUDE_DIR SDL_ttf.h - HINTS ENV SDL2TTFDIR ENV SDL2DIR ${SDL2_TTF_NO_DEFAULT_PATH_CMD} - PATH_SUFFIXES - SDL2 - # path suffixes to search inside ENV{SDL2DIR} and ENV{SDL2TTFDIR} - include/SDL2 include - PATHS ${SDL2_TTF_PATH} - DOC "Where the SDL2_ttf headers can be found") - -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(VC_LIB_PATH_SUFFIX lib/x64) -else() - set(VC_LIB_PATH_SUFFIX lib/x86) -endif() - -# Search for the SDL2_ttf library -find_library( - SDL2_TTF_LIBRARY - NAMES SDL2_ttf - HINTS ENV SDL2TTFDIR ENV SDL2DIR ${SDL2_TTF_NO_DEFAULT_PATH_CMD} - PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX} - PATHS ${SDL2_TTF_PATH} - DOC "Where the SDL2_ttf Library can be found") - -# Read SDL2_ttf version -if(SDL2_TTF_INCLUDE_DIR AND EXISTS "${SDL2_TTF_INCLUDE_DIR}/SDL_ttf.h") - file(STRINGS "${SDL2_TTF_INCLUDE_DIR}/SDL_ttf.h" SDL2_TTF_VERSION_MAJOR_LINE - REGEX "^#define[ \t]+SDL_TTF_MAJOR_VERSION[ \t]+[0-9]+$") - file(STRINGS "${SDL2_TTF_INCLUDE_DIR}/SDL_ttf.h" SDL2_TTF_VERSION_MINOR_LINE - REGEX "^#define[ \t]+SDL_TTF_MINOR_VERSION[ \t]+[0-9]+$") - file(STRINGS "${SDL2_TTF_INCLUDE_DIR}/SDL_ttf.h" SDL2_TTF_VERSION_PATCH_LINE - REGEX "^#define[ \t]+SDL_TTF_PATCHLEVEL[ \t]+[0-9]+$") - string(REGEX - REPLACE "^#define[ \t]+SDL_TTF_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" - SDL2_TTF_VERSION_MAJOR "${SDL2_TTF_VERSION_MAJOR_LINE}") - string(REGEX - REPLACE "^#define[ \t]+SDL_TTF_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" - SDL2_TTF_VERSION_MINOR "${SDL2_TTF_VERSION_MINOR_LINE}") - string(REGEX REPLACE "^#define[ \t]+SDL_TTF_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" - SDL2_TTF_VERSION_PATCH "${SDL2_TTF_VERSION_PATCH_LINE}") - set(SDL2_TTF_VERSION_STRING - ${SDL2_TTF_VERSION_MAJOR}.${SDL2_TTF_VERSION_MINOR}.${SDL2_TTF_VERSION_PATCH} - ) - unset(SDL2_TTF_VERSION_MAJOR_LINE) - unset(SDL2_TTF_VERSION_MINOR_LINE) - unset(SDL2_TTF_VERSION_PATCH_LINE) - unset(SDL2_TTF_VERSION_MAJOR) - unset(SDL2_TTF_VERSION_MINOR) - unset(SDL2_TTF_VERSION_PATCH) -endif() - -set(SDL2_TTF_LIBRARIES ${SDL2_TTF_LIBRARY}) -set(SDL2_TTF_INCLUDE_DIRS ${SDL2_TTF_INCLUDE_DIR}) - -include(FindPackageHandleStandardArgs) - -find_package_handle_standard_args( - SDL2_ttf - REQUIRED_VARS SDL2_TTF_LIBRARIES SDL2_TTF_INCLUDE_DIRS - VERSION_VAR SDL2_TTF_VERSION_STRING) - -mark_as_advanced(SDL2_TTF_PATH SDL2_TTF_NO_DEFAULT_PATH SDL2_TTF_LIBRARY - SDL2_TTF_INCLUDE_DIR) - -if(SDL2_TTF_FOUND) - - # SDL2::TTF target - if(SDL2_TTF_LIBRARY AND NOT TARGET SDL2::TTF) - add_library(SDL2::TTF UNKNOWN IMPORTED) - set_target_properties( - SDL2::TTF - PROPERTIES IMPORTED_LOCATION "${SDL2_TTF_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_TTF_INCLUDE_DIR}" - INTERFACE_LINK_LIBRARIES SDL2::Core) - endif() -endif() diff --git a/examples/main.cpp b/examples/main.cpp index ef14368..ba3d737 100644 --- a/examples/main.cpp +++ b/examples/main.cpp @@ -1,6 +1,5 @@ #include -#include #include #include #include @@ -10,8 +9,8 @@ using namespace sdlk; -static const constexpr int WINDOW_WIDTH = 1000; -static const constexpr int WINDOW_HEIGHT = 1000; +static constexpr int WINDOW_WIDTH = 1000; +static constexpr int WINDOW_HEIGHT = 1000; auto main(int argc, char** argv) -> int { @@ -55,7 +54,7 @@ auto main(int argc, char** argv) -> int [&](const SDL_Event& event) { shape.translate({ 100, 100 }); }); myapp.add_event_listener( - event_type::mouse_button_up, [&](const SDL_Event& event) { shape.scale(1.1f); }); + event_type::mouse_button_up, [&](const SDL_Event&) { shape.scale(1.1f); }); return myapp.run(argc, argv); } diff --git a/external/earcut b/external/earcut deleted file mode 160000 index 7fa7aa3..0000000 --- a/external/earcut +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7fa7aa30183849e988ae79ab2eef19f9ae97acf4 diff --git a/external/glm b/external/glm deleted file mode 160000 index 2d4c4b4..0000000 --- a/external/glm +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2d4c4b4dd31fde06cfffad7915c2b3006402322f diff --git a/external/msdf-atlas-gen b/external/msdf-atlas-gen deleted file mode 160000 index 77804c2..0000000 --- a/external/msdf-atlas-gen +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 77804c2f4108f49eb73491cda9296a2afb714d4c diff --git a/sources/CMakeLists.txt b/sources/CMakeLists.txt index cf03a69..56d3242 100644 --- a/sources/CMakeLists.txt +++ b/sources/CMakeLists.txt @@ -34,21 +34,20 @@ file(COPY core/shaders DESTINATION ${CMAKE_BINARY_DIR}/bin/resources) target_include_directories( ${SDLK_LIB_NAME} PUBLIC $) -target_include_directories( - ${SDLK_LIB_NAME} PUBLIC $) +target_include_directories(${SDLK_LIB_NAME} PRIVATE $) +# target_link +target_link_libraries(${SDLK_LIB_NAME} + PUBLIC + $ + $,SDL2::SDL2,SDL2::SDL2-static> +) -target_include_directories( - ${SDLK_LIB_NAME} PUBLIC ${FREETYPE_INCLUDE_DIRS}) +target_link_libraries(${SDLK_LIB_NAME} PUBLIC glm::glm-header-only) -# target_link -target_link_libraries( - ${SDLK_LIB_NAME} - PUBLIC SDL2 - PUBLIC SDL2_image - PUBLIC Freetype::Freetype) +target_link_libraries(${SDLK_LIB_NAME} PUBLIC Freetype::Freetype) + +target_link_libraries(${SDLK_LIB_NAME} PUBLIC $,SDL2_image::SDL2_image,SDL2_image::SDL2_image-static>) # set properties set_target_properties( diff --git a/sources/core/colored_shape.cpp b/sources/core/colored_shape.cpp index a944837..fe44880 100644 --- a/sources/core/colored_shape.cpp +++ b/sources/core/colored_shape.cpp @@ -1,3 +1,4 @@ +#include #include #include #include diff --git a/sources/core/shape.cpp b/sources/core/shape.cpp index 8509095..a2420a7 100644 --- a/sources/core/shape.cpp +++ b/sources/core/shape.cpp @@ -1,6 +1,7 @@ #include #include +#include #include #include #include diff --git a/sources/core/textured_shape.cpp b/sources/core/textured_shape.cpp index d89ea04..2954b76 100644 --- a/sources/core/textured_shape.cpp +++ b/sources/core/textured_shape.cpp @@ -1,3 +1,4 @@ +#include #include #include #include diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 0000000..974a0a2 --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,11 @@ +{ + "name" : "sdlk", + "version" : "0.0.5", + "dependencies" : [ + "sdl2", + "glm", + "earcut-hpp", + "freetype", + "sdl2-image" + ] +} \ No newline at end of file From 0119af721b7035b914c58e93b44ceb8f36725a7b Mon Sep 17 00:00:00 2001 From: RickaPrincy Date: Sun, 24 Aug 2025 07:50:34 +0300 Subject: [PATCH 3/3] test: ci --- .github/workflows/ci.yml | 38 +++++++++++++++++++++++++------------- CMakeLists.txt | 4 ---- CMakePresets.json | 14 ++++++++++++++ vcpkg.json | 1 + 4 files changed, 40 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b40c4d..b78fc49 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,26 +1,38 @@ -name: ci +name: ci on: push: branches: [ "main" ] pull_request: branches: [ "main" ] - jobs: build: - runs-on: ubuntu-latest - name: build with cmake + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + runs-on: ${{ matrix.os }} + steps: - - uses: actions/checkout@v4 - - - name: install deps - run: sudo apt install libsdl2-2.0-0 libsdl2-dev libsdl2-image-dev libfreetype6-dev - - - name: configure - run: cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build + - uses: actions/checkout@v4 + + - name: Install latest CMake and Ninja + uses: lukka/get-cmake@v3.29.3 + + - name: Fix Linux-specific issues + if: runner.os == 'Linux' + run: sudo apt-get update && sudo apt-get install -y libltdl-dev build-essential pkg-config ninja-build + + - name: Setup anew (or from cache) vcpkg (and does not build any package) + uses: lukka/run-vcpkg@v11 + with: + configurePreset: vcpkg-release + buildPreset: vcpkg-release - - name: build - run: cd build; make + - name: Run CMake consuming CMakePreset.json and run vcpkg to build packages + uses: lukka/run-cmake@v10 + with: + configurePreset: 'vcpkg-release' + buildPreset: 'vcpkg-release' # style: # runs-on: ubuntu-latest diff --git a/CMakeLists.txt b/CMakeLists.txt index c4dd55c..c1e12ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,10 +39,6 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Debug") endif() -if(WIN32) - add_compile_options(WIN32) -endif() - if(CMAKE_BUILD_TYPE STREQUAL "Release") set(SDLK_TEST OFF) set(SDLK_BUILD_EXAMPLE OFF) diff --git a/CMakePresets.json b/CMakePresets.json index b29e536..89e643f 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -27,5 +27,19 @@ "SDLK_BUILD_EXAMPLE": "OFF" } } + ], + "buildPresets": [ + { + "name": "vcpkg-debug", + "configurePreset": "vcpkg-debug", + "displayName": "Build Debug", + "description": "Build project in Debug configuration" + }, + { + "name": "vcpkg-release", + "configurePreset": "vcpkg-release", + "displayName": "Build Release", + "description": "Build project in Release configuration" + } ] } \ No newline at end of file diff --git a/vcpkg.json b/vcpkg.json index 974a0a2..701a0cc 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,6 +1,7 @@ { "name" : "sdlk", "version" : "0.0.5", + "builtin-baseline": "6ecbbbdf31cba47aafa7cf6189b1e73e10ac61f8", "dependencies" : [ "sdl2", "glm",