forked from chocolate-doom/chocolate-doom
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/chocolate-doom/chocolate-…
- Loading branch information
Showing
48 changed files
with
1,455 additions
and
2,697 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") | ||
|
||
cmake_minimum_required(VERSION 3.7.2) | ||
project("Chocolate Doom" VERSION 3.0.0 LANGUAGES C) | ||
|
||
# Autotools variables | ||
set(top_srcdir ${CMAKE_CURRENT_SOURCE_DIR}) | ||
set(top_builddir ${CMAKE_CURRENT_BINARY_DIR}) | ||
|
||
# AC_INIT variables | ||
set(PACKAGE_NAME "${PROJECT_NAME}") | ||
set(PACKAGE_TARNAME "chocolate-doom") | ||
set(PACKAGE_VERSION "${PROJECT_VERSION}") | ||
set(PACKAGE_STRING "${PROJECT_NAME} ${PROJECT_VERSION}") | ||
set(PACKAGE_BUGREPORT "chocolate-doom-dev-list@chocolate-doom.org") | ||
|
||
string(REGEX REPLACE " Doom$" "" PACKAGE_SHORTNAME "${PACKAGE_NAME}") | ||
set(PACKAGE_COPYRIGHT "Copyright (C) 1993-2017") | ||
set(PACKAGE_LICENSE "GNU General Public License, version 2") | ||
|
||
# Any settings that should apply to all targets in this directory and all | ||
# subdirectories should go here. Use judiciously. | ||
if(MSVC) | ||
add_definitions("/D_CRT_SECURE_NO_WARNINGS" "/D_CRT_SECURE_NO_DEPRECATE" | ||
"/D_CRT_NONSTDC_NO_DEPRECATE") | ||
else() | ||
add_compile_options("-Wall" "-Wdeclaration-after-statement" | ||
"-Wredundant-decls") | ||
endif() | ||
|
||
find_package(SDL2 2.0.1) | ||
find_package(SDL2_mixer 2.0.0) | ||
find_package(SDL2_net 2.0.0) | ||
|
||
# Check for libsamplerate. | ||
find_package(samplerate) | ||
if(SAMPLERATE_FOUND) | ||
set(HAVE_LIBSAMPLERATE TRUE) | ||
endif() | ||
|
||
# Check for libpng. | ||
find_package(PNG) | ||
if(PNG_FOUND) | ||
set(HAVE_LIBPNG TRUE) | ||
endif() | ||
|
||
find_package(m) | ||
|
||
include(CheckSymbolExists) | ||
check_symbol_exists(strcasecmp "strings.h" HAVE_DECL_STRCASECMP) | ||
check_symbol_exists(strncasecmp "strings.h" HAVE_DECL_STRNCASECMP) | ||
|
||
string(CONCAT WINDOWS_RC_VERSION "${PROJECT_VERSION_MAJOR}, " | ||
"${PROJECT_VERSION_MINOR}, ${PROJECT_VERSION_PATCH}, 0") | ||
|
||
# Without a hyphen. This is used for the bash-completion scripts. | ||
string(TOLOWER "${PACKAGE_SHORTNAME}" PROGRAM_SPREFIX) | ||
|
||
# With a hyphen, used almost everywhere else. | ||
set(PROGRAM_PREFIX "${PROGRAM_SPREFIX}-") | ||
|
||
configure_file(cmake/config.h.cin config.h) | ||
|
||
configure_file(src/resource.rc.in src/resource.rc) | ||
configure_file(src/setup-res.rc.in src/setup-res.rc) | ||
configure_file(src/setup/setup-manifest.xml.in src/setup/setup-manifest.xml) | ||
|
||
foreach(SUBDIR textscreen midiproc opl pcsound src) | ||
add_subdirectory("${SUBDIR}") | ||
endforeach() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# FindSDL2.cmake | ||
# | ||
# Copyright (c) 2018, Alex Mayfield <alexmax2742@gmail.com> | ||
# 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 the <organization> nor the | ||
# names of its 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 <COPYRIGHT HOLDER> 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. | ||
# | ||
# Currently works with the following generators: | ||
# - Unix Makefiles | ||
# - Ninja | ||
# - Visual Studio | ||
|
||
# Cache variable that allows you to point CMake at a directory containing | ||
# an extracted development library. | ||
set(SDL2_DIR "${SDL2_DIR}" CACHE PATH "Location of SDL2 library directory") | ||
|
||
# Use pkg-config to find library locations in *NIX environments. | ||
find_package(PkgConfig QUIET) | ||
if(PKG_CONFIG_FOUND) | ||
pkg_search_module(PC_SDL2 QUIET sdl2) | ||
endif() | ||
|
||
# Find the include directory. | ||
find_path(SDL2_INCLUDE_DIR "SDL_version.h" | ||
HINTS "${SDL2_DIR}/include" ${PC_SDL2_INCLUDE_DIRS}) | ||
|
||
# Find the version. Taken and modified from CMake's FindSDL.cmake. | ||
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() | ||
|
||
# Find the SDL2 and SDL2main libraries | ||
if(CMAKE_SIZEOF_VOID_P STREQUAL 8) | ||
find_library(SDL2_LIBRARY "SDL2" | ||
HINTS "${SDL2_DIR}/lib/x64" ${PC_SDL2_LIBRARY_DIRS}) | ||
find_library(SDL2_MAIN_LIBRARY "SDL2main" | ||
HINTS "${SDL2_DIR}/lib/x64" ${PC_SDL2_LIBRARY_DIRS}) | ||
else() | ||
find_library(SDL2_LIBRARY "SDL2" | ||
HINTS "${SDL2_DIR}/lib/x86" ${PC_SDL2_LIBRARY_DIRS}) | ||
find_library(SDL2_MAIN_LIBRARY "SDL2main" | ||
HINTS "${SDL2_DIR}/lib/x86" ${PC_SDL2_LIBRARY_DIRS}) | ||
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) | ||
# SDL2 imported target. | ||
add_library(SDL2::SDL2 UNKNOWN IMPORTED) | ||
set_target_properties(SDL2::SDL2 PROPERTIES | ||
INTERFACE_COMPILE_OPTIONS "${PC_SDL2_CFLAGS_OTHER}" | ||
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" | ||
IMPORTED_LOCATION "${SDL2_LIBRARY}") | ||
|
||
# SDL2main imported target. | ||
add_library(SDL2::SDL2main UNKNOWN IMPORTED) | ||
set_target_properties(SDL2::SDL2main PROPERTIES | ||
IMPORTED_LOCATION "${SDL2_MAIN_LIBRARY}") | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
# FindSDL2_mixer.cmake | ||
# | ||
# Copyright (c) 2018, Alex Mayfield <alexmax2742@gmail.com> | ||
# 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 the <organization> nor the | ||
# names of its 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 <COPYRIGHT HOLDER> 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. | ||
# | ||
# Currently works with the following generators: | ||
# - Unix Makefiles | ||
# - Ninja | ||
# - Visual Studio | ||
|
||
# Cache variable that allows you to point CMake at a directory containing | ||
# an extracted development library. | ||
set(SDL2_MIXER_DIR "${SDL2_MIXER_DIR}" CACHE PATH "Location of SDL2_mixer library directory") | ||
|
||
# Use pkg-config to find library locations in *NIX environments. | ||
find_package(PkgConfig QUIET) | ||
if(PKG_CONFIG_FOUND) | ||
pkg_search_module(PC_SDL2_MIXER QUIET SDL2_mixer) | ||
endif() | ||
|
||
# Find the include directory. | ||
find_path(SDL2_MIXER_INCLUDE_DIR "SDL_mixer.h" | ||
HINTS "${SDL2_MIXER_DIR}/include" ${PC_SDL2_MIXER_INCLUDE_DIRS}) | ||
|
||
# Find the version. Taken and modified from CMake's FindSDL.cmake. | ||
if(SDL2_MIXER_INCLUDE_DIR AND EXISTS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h") | ||
file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+[0-9]+$") | ||
file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+[0-9]+$") | ||
file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+[0-9]+$") | ||
string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_MAJOR "${SDL2_MIXER_VERSION_MAJOR_LINE}") | ||
string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_MINOR "${SDL2_MIXER_VERSION_MINOR_LINE}") | ||
string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_PATCH "${SDL2_MIXER_VERSION_PATCH_LINE}") | ||
set(SDL2_MIXER_VERSION "${SDL2_MIXER_VERSION_MAJOR}.${SDL2_MIXER_VERSION_MINOR}.${SDL2_MIXER_VERSION_PATCH}") | ||
unset(SDL2_MIXER_VERSION_MAJOR_LINE) | ||
unset(SDL2_MIXER_VERSION_MINOR_LINE) | ||
unset(SDL2_MIXER_VERSION_PATCH_LINE) | ||
unset(SDL2_MIXER_VERSION_MAJOR) | ||
unset(SDL2_MIXER_VERSION_MINOR) | ||
unset(SDL2_MIXER_VERSION_PATCH) | ||
endif() | ||
|
||
# Find the library. | ||
if(CMAKE_SIZEOF_VOID_P STREQUAL 8) | ||
find_library(SDL2_MIXER_LIBRARY "SDL2_mixer" | ||
HINTS "${SDL2_MIXER_DIR}/lib/x64" ${PC_SDL2_MIXER_LIBRARY_DIRS}) | ||
else() | ||
find_library(SDL2_MIXER_LIBRARY "SDL2_mixer" | ||
HINTS "${SDL2_MIXER_DIR}/lib/x86" ${PC_SDL2_MIXER_LIBRARY_DIRS}) | ||
endif() | ||
|
||
include(FindPackageHandleStandardArgs) | ||
find_package_handle_standard_args(SDL2_mixer | ||
FOUND_VAR SDL2_MIXER_FOUND | ||
REQUIRED_VARS SDL2_MIXER_INCLUDE_DIR SDL2_MIXER_LIBRARY | ||
VERSION_VAR SDL2_MIXER_VERSION | ||
) | ||
|
||
if(SDL2_MIXER_FOUND) | ||
# Imported target. | ||
add_library(SDL2::mixer UNKNOWN IMPORTED) | ||
set_target_properties(SDL2::mixer PROPERTIES | ||
INTERFACE_COMPILE_OPTIONS "${PC_SDL2_MIXER_CFLAGS_OTHER}" | ||
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_MIXER_INCLUDE_DIR}" | ||
INTERFACE_LINK_LIBRARIES SDL2::SDL2 | ||
IMPORTED_LOCATION "${SDL2_MIXER_LIBRARY}") | ||
endif() |
Oops, something went wrong.