ref: b9422484fbfbc467645a75d17f30227fb2c4a260
parent: b69478df6dfeedd1a9ee1fae5676397a80b1ac96
author: Alex Mayfield <[email protected]>
date: Tue May 1 19:10:46 EDT 2018
Initial stab at SDL2 and textscreen
--- /dev/null
+++ b/CMakeLists.txt
@@ -1,0 +1,10 @@
+set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+cmake_minimum_required(VERSION 3.9.3)
+project("Chocolate Doom" VERSION 3.0.0 LANGUAGES C)
+
+find_package(SDL2 2.0.1)
+find_package(SDL2_mixer 2.0.0)
+find_package(SDL2_net 2.0.0)
+
+add_subdirectory(textscreen)
--- /dev/null
+++ b/cmake/FindSDL2.cmake
@@ -1,0 +1,53 @@
+# Currently works with the following generators:
+# - Visual Studio
+
+set(SDL2_DIR "${SDL2_DIR}" CACHE PATH "Location of SDL2 library directory")
+
+find_path(SDL2_INCLUDE_DIR "SDL_version.h"
+ PATHS "${SDL2_DIR}/include")
+
+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 "${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()
+
+if(CMAKE_SIZEOF_VOID_P STREQUAL 8)
+ find_library(SDL2_LIBRARY "SDL2"
+ PATHS "${SDL2_DIR}/lib/x64")
+ find_library(SDL2_MAIN_LIBRARY "SDL2main"
+ PATHS "${SDL2_DIR}/lib/x64")
+else()
+ find_library(SDL2_LIBRARY "SDL2"
+ PATHS "${SDL2_DIR}/lib/x86")
+ find_library(SDL2_MAIN_LIBRARY "SDL2main"
+ PATHS "${SDL2_DIR}/lib/x86")
+endif()
+set(SDL2_LIBRARIES "${SDL2_MAIN_LIBRARY}" "${SDL2_LIBRARY}")
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(SDL2
+ FOUND_VAR SDL2_FOUND
+ REQUIRED_VARS SDL2_INCLUDE_DIR SDL2_LIBRARIES
+ VERSION_VAR SDL2_VERSION
+)
+
+if(SDL2_FOUND)
+ add_library(SDL2::SDL2 UNKNOWN IMPORTED)
+ set_target_properties(SDL2::SDL2 PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}"
+ IMPORTED_LOCATION "${SDL2_LIBRARY}")
+ add_library(SDL2::SDL2main UNKNOWN IMPORTED)
+ set_target_properties(SDL2::SDL2main PROPERTIES
+ IMPORTED_LOCATION "${SDL2_MAIN_LIBRARY}")
+endif()
--- /dev/null
+++ b/textscreen/CMakeLists.txt
@@ -1,0 +1,26 @@
+add_library(textscreen
+ textscreen.h
+ txt_conditional.c txt_conditional.h
+ txt_checkbox.c txt_checkbox.h
+ txt_desktop.c txt_desktop.h
+ txt_dropdown.c txt_dropdown.h
+ txt_fileselect.c txt_fileselect.h
+ txt_gui.c txt_gui.h
+ txt_inputbox.c txt_inputbox.h
+ txt_io.c txt_io.h
+ txt_main.h
+ txt_button.c txt_button.h
+ txt_label.c txt_label.h
+ txt_radiobutton.c txt_radiobutton.h
+ txt_scrollpane.c txt_scrollpane.h
+ txt_separator.c txt_separator.h
+ txt_spinctrl.c txt_spinctrl.h
+ txt_sdl.c txt_sdl.h
+ txt_strut.c txt_strut.h
+ txt_table.c txt_table.h
+ txt_utf8.c txt_utf8.h
+ txt_widget.c txt_widget.h
+ txt_window.c txt_window.h
+ txt_window_action.c txt_window_action.h)
+target_include_directories(textscreen PRIVATE "../src/")
+target_link_libraries(textscreen SDL2::SDL2)