# Copyright (c) 2021 Dominic Msters # # This software is released under the MIT License. # https://opensource.org/licenses/MIT # Set up the base CMake stuff. cmake_minimum_required(VERSION 3.13) set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) # Set some global flags add_compile_definitions( _CRT_SECURE_NO_WARNINGS=1 ASSET_PREFIX="../assets/" ) # Do initial set up depending on the build target type. if(TARGET_TYPE STREQUAL test) set(TARGET_NAME test) elseif(TARGET_TYPE STREQUAL game) set(TARGET_NAME ${TARGET_GAME}) else() message(FATAL_ERROR "Missing or invalid definition of TARGET_TYPE") endif() # Set up the project project(${TARGET_NAME} VERSION 1.0) add_executable(${PROJECT_NAME}) # Variables set(ROOT_DIR "${CMAKE_SOURCE_DIR}") set(TOOLS_DIR "${ROOT_DIR}/tools") set(ASSETS_DIR "assets") # Include tools add_subdirectory(tools) # Now change sources depending on the target type if(TARGET_TYPE STREQUAL test) add_subdirectory(test) elseif(TARGET_TYPE STREQUAL game) # Set up shared assets # Shaders tool_copy(shader_textured shared/shaders/textured.vert shaders/textured.vert shared/shaders/textured.frag shaders/textured.frag ) # Fonts tool_copy(font_opensans shared/fonts/opensans/OpenSans-Regular.ttf fonts/opensans/OpenSans-Regular.ttf shared/fonts/opensans/OpenSans-Bold.ttf fonts/opensans/OpenSans-Bold.ttf ) # Textures tool_copy(texture_test shared/textures/test_texture.png textures/test_texture.png ) # Locales tool_copy(locale_en locale/language/en-US.csv locale/language/en-US.csv ) # Poker Game if(TARGET_GAME STREQUAL poker) add_compile_definitions( GAME_NAME="Penny's Poker" GAME_FILE="poker/game.h" GAME_TYPE=pokergame_t GAME_INIT=pokerGameInit GAME_UPDATE=pokerGameUpdate GAME_DISPOSE=pokerGameDispose GAME_VERSION=1.0 ) set(DIR_CHARS poker/characters) tool_vn_character(vn_penny ${DIR_CHARS}/penny/character.xml ${DIR_CHARS}/penny.png ) tool_vn_character(vn_lucy ${DIR_CHARS}/lucy/character.xml ${DIR_CHARS}/lucy.png ) tool_vn_character(vn_julie ${DIR_CHARS}/julie/character.xml ${DIR_CHARS}/julie.png ) tool_vn_character(vn_sammy ${DIR_CHARS}/sammy/character.xml ${DIR_CHARS}/sammy.png ) tool_assets( shader_textured font_opensans texture_test vn_penny vn_lucy vn_julie vn_sammy locale_en ) endif() # Common Game Dependencies. add_dependencies(${PROJECT_NAME} assets) add_subdirectory(client) endif() # Add global sources. add_subdirectory(lib) add_subdirectory(src)