ref: c7c507710320c7c5b5caa88fd7016743e0497ee9
parent: afb3e2f83e90b7d874dbf6c20e1f485d17c02d94
author: Clownacy <Clownacy@users.noreply.github.com>
date: Thu Sep 5 08:46:39 EDT 2019
Remove the leftover CMakeLists.txt file I might bring this back at some point. Depends.
--- a/CMakeLists.txt
+++ /dev/null
@@ -1,446 +1,0 @@
-cmake_minimum_required(VERSION 3.7.2)
-
-if((${CMAKE_VERSION} VERSION_EQUAL 3.9) OR (${CMAKE_VERSION} VERSION_GREATER 3.9))
- cmake_policy(SET CMP0069 NEW)
-endif()
-
-set(BUILD_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/game")
-set(ASSETS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/assets")
-
-option(JAPANESE "Enable the Japanese-language build" OFF)
-option(FIX_BUGS "Fix certain bugs (see src/Bug Fixes.txt)" OFF)
-option(NONPORTABLE "Enable bits of code that aren't portable, but are what the original game used" OFF)
-option(FORCE_LOCAL_LIBS "Compile the built-in versions of SDL2, FreeType, and FLTK instead of using the system-provided ones" OFF)
-set(RENDERER "Texture" CACHE STRING "Which renderer the game should use: 'OpenGL3' for an OpenGL 3.2 renderer, 'Texture' for SDL2's hardware-accelerated Texture API, 'Surface' for SDL2's software-rendered Surface API, and 'Software' for a handwritten software renderer")
-
-project(CSE2 LANGUAGES C CXX)
-
-if(MSVC)
- # Statically-link the CRT (vcpkg static libs do this)
- foreach(flag_var 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_var} MATCHES "/MD")
- string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
- endif()
- endforeach()
-endif()
-
-##
-# CSE2
-##
-
-add_executable(CSE2
- src/ArmsItem.cpp
- src/ArmsItem.h
- src/Back.cpp
- src/Back.h
- src/Boss.cpp
- src/Boss.h
- src/BossAlmo1.cpp
- src/BossAlmo1.h
- src/BossAlmo2.cpp
- src/BossAlmo2.h
- src/BossBallos.cpp
- src/BossBallos.h
- src/BossFrog.cpp
- src/BossFrog.h
- src/BossIronH.cpp
- src/BossIronH.h
- src/BossLife.cpp
- src/BossLife.h
- src/BossOhm.cpp
- src/BossOhm.h
- src/BossPress.cpp
- src/BossPress.h
- src/BossTwinD.cpp
- src/BossTwinD.h
- src/BossX.cpp
- src/BossX.h
- src/BulHit.cpp
- src/BulHit.h
- src/Bullet.cpp
- src/Bullet.h
- src/Caret.cpp
- src/Caret.h
- src/CommonDefines.h
- src/Config.cpp
- src/Config.h
- src/Draw.cpp
- src/Draw.h
- src/Ending.cpp
- src/Ending.h
- src/Escape.cpp
- src/Escape.h
- src/Fade.cpp
- src/Fade.h
- src/File.cpp
- src/File.h
- src/Flags.cpp
- src/Flags.h
- src/Flash.cpp
- src/Flash.h
- src/Font.cpp
- src/Font.h
- src/Frame.cpp
- src/Frame.h
- src/Game.cpp
- src/Game.h
- src/Generic.cpp
- src/Generic.h
- src/GenericLoad.cpp
- src/GenericLoad.h
- src/Input.cpp
- src/Input.h
- src/KeyControl.cpp
- src/KeyControl.h
- src/Main.cpp
- src/Main.h
- src/Map.cpp
- src/Map.h
- src/MapName.cpp
- src/MapName.h
- src/MiniMap.cpp
- src/MiniMap.h
- src/MyChar.cpp
- src/MyChar.h
- src/MycHit.cpp
- src/MycHit.h
- src/MycParam.cpp
- src/MycParam.h
- src/NpcAct.h
- src/NpcAct000.cpp
- src/NpcAct020.cpp
- src/NpcAct040.cpp
- src/NpcAct060.cpp
- src/NpcAct080.cpp
- src/NpcAct100.cpp
- src/NpcAct120.cpp
- src/NpcAct140.cpp
- src/NpcAct160.cpp
- src/NpcAct180.cpp
- src/NpcAct200.cpp
- src/NpcAct220.cpp
- src/NpcAct240.cpp
- src/NpcAct260.cpp
- src/NpcAct280.cpp
- src/NpcAct300.cpp
- src/NpcAct320.cpp
- src/NpcAct340.cpp
- src/NpChar.cpp
- src/NpChar.h
- src/NpcHit.cpp
- src/NpcHit.h
- src/NpcTbl.cpp
- src/NpcTbl.h
- src/Organya.cpp
- src/Organya.h
- src/PixTone.cpp
- src/PixTone.h
- src/Profile.cpp
- src/Profile.h
- src/Resource.cpp
- src/Resource.h
- src/SelStage.cpp
- src/SelStage.h
- src/Shoot.cpp
- src/Shoot.h
- src/Sound.cpp
- src/Sound.h
- src/Stage.cpp
- src/Stage.h
- src/Star.cpp
- src/Star.h
- src/TextScr.cpp
- src/TextScr.h
- src/Triangle.cpp
- src/Triangle.h
- src/ValueView.cpp
- src/ValueView.h
- src/WindowsWrapper.h
- src/Backends/Rendering.h
-)
-
-set(RESOURCES
- BITMAP/Credit01.bmp
- BITMAP/Credit02.bmp
- BITMAP/Credit03.bmp
- BITMAP/Credit04.bmp
- BITMAP/Credit05.bmp
- BITMAP/Credit06.bmp
- BITMAP/Credit07.bmp
- BITMAP/Credit08.bmp
- BITMAP/Credit09.bmp
- BITMAP/Credit10.bmp
- BITMAP/Credit11.bmp
- BITMAP/Credit12.bmp
- BITMAP/Credit14.bmp
- BITMAP/Credit15.bmp
- BITMAP/Credit16.bmp
- BITMAP/Credit17.bmp
- BITMAP/Credit18.bmp
- CURSOR/CURSOR_IKA.bmp
- CURSOR/CURSOR_NORMAL.bmp
- ORG/Access.org
- ORG/Anzen.org
- ORG/Balcony.org
- ORG/Ballos.org
- ORG/BreakDown.org
- ORG/Cemetery.org
- ORG/Curly.org
- ORG/Dr.org
- ORG/Ending.org
- ORG/Escape.org
- ORG/Fanfale1.org
- ORG/Fanfale2.org
- ORG/Fanfale3.org
- ORG/FireEye.org
- ORG/Gameover.org
- ORG/Ginsuke.org
- ORG/Grand.org
- ORG/Gravity.org
- ORG/Hell.org
- ORG/ironH.org
- ORG/Jenka.org
- ORG/Jenka2.org
- ORG/Kodou.org
- ORG/LastBtl3.org
- ORG/LastBtl.org
- ORG/LastCave.org
- ORG/Marine.org
- ORG/Maze.org
- ORG/MDown2.org
- ORG/Mura.org
- ORG/Oside.org
- ORG/Plant.org
- ORG/quiet.org
- ORG/Requiem.org
- ORG/Toroko.org
- ORG/Vivi.org
- ORG/Wanpak2.org
- ORG/Wanpaku.org
- ORG/Weed.org
- ORG/White.org
- ORG/XXXX.org
- ORG/Zonbie.org
- WAVE/Wave.dat
-)
-
-# Handle options
-if(JAPANESE)
- set(DATA_DIRECTORY "${ASSETS_DIRECTORY}/data_jp")
- list(APPEND RESOURCES "BITMAP/pixel_jp.bmp")
- target_compile_definitions(CSE2 PRIVATE JAPANESE)
-else()
- set(DATA_DIRECTORY "${ASSETS_DIRECTORY}/data_en")
- list(APPEND RESOURCES "BITMAP/pixel.bmp")
-endif()
-
-if(FIX_BUGS)
- target_compile_definitions(CSE2 PRIVATE FIX_BUGS)
-endif()
-
-if(EXISTS "/opt/vc/include/bcm_host.h") # Detect Raspberry Pi
- target_compile_definitions(CSE2 PRIVATE RASPBERRY_PI)
-endif()
-
-if(NONPORTABLE)
- target_compile_definitions(CSE2 PRIVATE NONPORTABLE)
-endif()
-
-if(RENDERER MATCHES "OpenGL3")
- target_sources(CSE2 PRIVATE "src/Backends/Rendering/OpenGL3.cpp")
-elseif(RENDERER MATCHES "Texture")
- target_sources(CSE2 PRIVATE "src/Backends/Rendering/SDLTexture.cpp")
-elseif(RENDERER MATCHES "Surface")
- target_sources(CSE2 PRIVATE "src/Backends/Rendering/SDLSurface.cpp")
-elseif(RENDERER MATCHES "Software")
- target_sources(CSE2 PRIVATE "src/Backends/Rendering/Software.cpp")
-else()
- message(FATAL_ERROR "Invalid RENDERER selected")
-endif()
-
-# Make some tweaks if we're targetting Windows
-if(WIN32)
- target_sources(CSE2 PRIVATE "${ASSETS_DIRECTORY}/resources/ICON/ICON.rc")
- target_compile_definitions(CSE2 PRIVATE WINDOWS)
- set_target_properties(CSE2 PROPERTIES WIN32_EXECUTABLE YES) # Disable the console window
- target_link_libraries(CSE2 "version.lib") # Link this for some code in Generic.cpp
-else()
- list(APPEND RESOURCES "ICON/ICON_MINI.bmp")
-endif()
-
-# Make some tweaks if we're using MSVC
-if(MSVC)
- target_compile_definitions(CSE2 PRIVATE _CRT_SECURE_NO_WARNINGS) # Shut up those stupid warnings
-endif()
-
-# Decide the embedded font
-if(JAPANESE)
- list(APPEND RESOURCES "FONT/msgothic.ttc")
-elseif(NOT WIN32)
- list(APPEND RESOURCES "FONT/cour.ttf")
-endif()
-
-# Build bin2h externally, so it isn't cross-compiled when CSE2 is (Emscripten)
-include(ExternalProject)
-
-ExternalProject_Add(bin2h
- SOURCE_DIR "${CMAKE_SOURCE_DIR}/bin2h"
- DOWNLOAD_COMMAND ""
- UPDATE_COMMAND ""
- BUILD_BYPRODUCTS "<INSTALL_DIR>/bin/bin2h"
- CMAKE_ARGS
- -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
- -DCMAKE_BUILD_TYPE=Release
- INSTALL_COMMAND
- ${CMAKE_COMMAND} --build . --config Release --target install
-)
-
-ExternalProject_Get_Property(bin2h INSTALL_DIR)
-
-add_executable(bin2h_tool IMPORTED)
-add_dependencies(bin2h_tool bin2h)
-set_target_properties(bin2h_tool PROPERTIES IMPORTED_LOCATION "${INSTALL_DIR}/bin/bin2h")
-
-# Convert resources to header files
-foreach(FILENAME IN LISTS RESOURCES)
- set(IN_DIR "${ASSETS_DIRECTORY}/resources")
- set(OUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/Resource")
- get_filename_component(DIRECTORY "${FILENAME}" DIRECTORY)
- add_custom_command(
- OUTPUT "${OUT_DIR}/${FILENAME}.h"
- COMMAND ${CMAKE_COMMAND} -E make_directory "${OUT_DIR}/${DIRECTORY}"
- COMMAND bin2h_tool "${IN_DIR}/${FILENAME}" "${OUT_DIR}/${FILENAME}.h"
- DEPENDS bin2h_tool "${IN_DIR}/${FILENAME}"
- )
- target_sources(CSE2 PRIVATE "${OUT_DIR}/${FILENAME}.h")
-endforeach()
-
-# Force strict C90
-set_target_properties(CSE2 PROPERTIES
- C_STANDARD 90
- C_STANDARD_REQUIRED ON
- C_EXTENSIONS OFF
-)
-
-# Force strict C++98
-set_target_properties(CSE2 PROPERTIES
- CXX_STANDARD 98
- CXX_STANDARD_REQUIRED ON
- CXX_EXTENSIONS OFF
-)
-
-# Include directory for third-party software
-target_include_directories(CSE2 PRIVATE "external")
-
-# Name debug builds "CSE2_debug", to distinguish them
-set_target_properties(CSE2 PROPERTIES DEBUG_OUTPUT_NAME "CSE2_debug")
-
-# Send executable to the build_en/build_jp directory
-set_target_properties(CSE2 PROPERTIES
- RUNTIME_OUTPUT_DIRECTORY ${BUILD_DIRECTORY}
- RUNTIME_OUTPUT_DIRECTORY_RELEASE ${BUILD_DIRECTORY}
- RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${BUILD_DIRECTORY}
- RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${BUILD_DIRECTORY}
- RUNTIME_OUTPUT_DIRECTORY_DEBUG ${BUILD_DIRECTORY}
-)
-
-# Copy data folder to build directory
-add_custom_command(TARGET CSE2 POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E remove_directory "${BUILD_DIRECTORY}/data"
- COMMAND ${CMAKE_COMMAND} -E copy_directory "${DATA_DIRECTORY}" "${BUILD_DIRECTORY}/data"
-)
-
-# Enable link-time optimisation if available
-if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
- if((${CMAKE_VERSION} VERSION_EQUAL 3.9) OR (${CMAKE_VERSION} VERSION_GREATER 3.9))
- include(CheckIPOSupported)
- check_ipo_supported(RESULT result)
- if(result)
- set_target_properties(CSE2 PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE)
- endif()
- endif()
-endif()
-
-# Find dependencies
-
-if(NOT FORCE_LOCAL_LIBS)
- find_package(SDL2)
-endif()
-
-if(TARGET SDL2::SDL2)
- # CMake-generated config (Arch, vcpkg, Raspbian)
- message(STATUS "Using system SDL2")
- target_link_libraries(CSE2 SDL2::SDL2 SDL2::SDL2main)
-elseif(SDL2_FOUND)
- # Autotools-generated config (MSYS2)
- message(STATUS "Using system SDL2")
- target_include_directories(CSE2 PRIVATE ${SDL2_INCLUDE_DIRS})
- target_link_libraries(CSE2 ${SDL2_LIBRARIES})
-else()
- # Compile it ourselves
- message(STATUS "Using local SDL2")
- set(SDL_SHARED_ENABLED_BY_DEFAULT OFF)
- if(MSVC)
- set(LIBC ON) # Needed to prevent possible 'symbol already defined' errors
- endif()
- add_subdirectory("external/SDL2" EXCLUDE_FROM_ALL)
- target_link_libraries(CSE2 SDL2-static SDL2main)
-endif()
-
-if(NOT FORCE_LOCAL_LIBS)
- find_package(Freetype)
-endif()
-
-if(FREETYPE_FOUND)
- message(STATUS "Using system FreeType")
- target_include_directories(CSE2 PRIVATE ${FREETYPE_INCLUDE_DIRS})
- target_link_libraries(CSE2 ${FREETYPE_LIBRARIES})
-else()
- # Compile it ourselves
- message(STATUS "Using local FreeType")
- if(FORCE_LOCAL_LIBS)
- set(CMAKE_DISABLE_FIND_PACKAGE_HarfBuzz ON)
- set(CMAKE_DISABLE_FIND_PACKAGE_ZLIB ON)
- set(CMAKE_DISABLE_FIND_PACKAGE_PNG ON)
- set(CMAKE_DISABLE_FIND_PACKAGE_BZip2 ON)
- endif()
- add_subdirectory("external/freetype" EXCLUDE_FROM_ALL)
- target_link_libraries(CSE2 freetype)
-endif()
-
-if(RENDERER MATCHES "OpenGL3")
- if(NOT FORCE_LOCAL_LIBS)
- find_package(GLEW)
- endif()
-
- if(TARGET GLEW::GLEW)
- message(STATUS "Using system GLEW")
- target_link_libraries(CSE2 GLEW::GLEW)
- else()
- # Compile it ourselves
- message(STATUS "Using local GLEW")
- target_sources(CSE2 PRIVATE "external/glew/glew.c" "external/glew/GL/glew.h")
- target_include_directories(CSE2 PRIVATE "external/glew")
- endif()
-
- find_package(OpenGL REQUIRED)
- target_link_libraries(CSE2 OpenGL::GL)
-endif()
-
-##
-# DoConfig
-##
-
-add_subdirectory("DoConfig")
-
-# Name debug builds "DoConfig_debug", to distinguish them
-set_target_properties(DoConfig PROPERTIES DEBUG_OUTPUT_NAME "DoConfig_debug")
-
-# Send executable to the build_en/build_jp directory
-set_target_properties(DoConfig PROPERTIES
- RUNTIME_OUTPUT_DIRECTORY ${BUILD_DIRECTORY}
- RUNTIME_OUTPUT_DIRECTORY_RELEASE ${BUILD_DIRECTORY}
- RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${BUILD_DIRECTORY}
- RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${BUILD_DIRECTORY}
- RUNTIME_OUTPUT_DIRECTORY_DEBUG ${BUILD_DIRECTORY}
-)