Initial stab at SDL2 and textscreen

This commit is contained in:
Alex Mayfield 2018-05-01 23:10:46 -04:00
parent b69478df6d
commit b9422484fb
5 changed files with 89 additions and 0 deletions

10
CMakeLists.txt Normal file
View file

@ -0,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)

53
cmake/FindSDL2.cmake Normal file
View file

@ -0,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()

View file

0
cmake/FindSDL2_net.cmake Normal file
View file

26
textscreen/CMakeLists.txt Normal file
View file

@ -0,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)