aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libopnmidi/fix-c++-standard.patch
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/libopnmidi/fix-c++-standard.patch
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/libopnmidi/fix-c++-standard.patch')
-rw-r--r--vcpkg/ports/libopnmidi/fix-c++-standard.patch78
1 files changed, 78 insertions, 0 deletions
diff --git a/vcpkg/ports/libopnmidi/fix-c++-standard.patch b/vcpkg/ports/libopnmidi/fix-c++-standard.patch
new file mode 100644
index 0000000..965b6d5
--- /dev/null
+++ b/vcpkg/ports/libopnmidi/fix-c++-standard.patch
@@ -0,0 +1,78 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 20e167d..93885c3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,13 +1,35 @@
+-cmake_minimum_required (VERSION 3.2)
++cmake_minimum_required (VERSION 3.2...3.5)
+ project(libOPNMIDI VERSION 1.5.1 LANGUAGES C CXX)
+
+ include(GNUInstallDirs)
++include(CheckCXXCompilerFlag)
+
+ # Prefer C90 standard
+ set(CMAKE_C_STANDARD 90)
+ # Prefer C++98 standard
+ set(CMAKE_CXX_STANDARD 98)
+
++if(MSVC)
++ check_cxx_compiler_flag("/std:c++14" COMPILER_SUPPORTS_CXX14)
++ if(COMPILER_SUPPORTS_CXX14)
++ set(FLAG_CPP14 "/std:c++14")
++ endif()
++ if(MSVC_VERSION LESS 1910)
++ unset(COMPILER_SUPPORTS_CXX14) # MSVC older than 2017 fails to build YMFM
++ endif()
++else()
++ check_cxx_compiler_flag("-std=c++14" COMPILER_SUPPORTS_CXX14)
++ if(COMPILER_SUPPORTS_CXX14)
++ set(FLAG_CPP14 "-std=c++14")
++ endif()
++endif()
++
++if(COMPILER_SUPPORTS_CXX14)
++ message("== Your C++ compiler supports C++14, YMFM emulator will be ENABLED")
++else()
++ message("== Your C++ compiler does NOT supports C++14, YMFM emulator will be DISABLED")
++endif()
++
+ if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+ endif()
+@@ -59,13 +81,24 @@ if(NOT MSVC AND NOT MSDOS)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVITA -DVITA=1 -fcompare-debug-second")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVITA -DVITA=1 -fcompare-debug-second")
+ endif()
++ if(NINTENDO_3DS OR NINTENDO_WII OR NINTENDO_WIIU OR NINTENDO_SWITCH)
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcompare-debug-second")
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcompare-debug-second")
++ endif()
+ endif()
+
+-if(NOT CMAKE_BUILD_TYPE)
+- set(CMAKE_BUILD_TYPE "Release")
++if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
++ if(NINTENDO_3DS OR NINTENDO_WII OR NINTENDO_WIIU OR NINTENDO_SWITCH)
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu90")
++ else()
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c89")
++ endif()
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98")
+ endif()
+
+-string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER)
++if(DEFINED CMAKE_BUILD_TYPE)
++ string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
++endif()
+ if(CMAKE_BUILD_TYPE_LOWER EQUAL "release")
+ add_definitions(-DNDEBUG)
+ ENDIF()
+@@ -88,7 +121,7 @@ function(set_legacy_standard destTarget)
+ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+ # Turn on warnings and legacy C/C++ standards to support more compilers
+ target_compile_options(${destTarget} PRIVATE
+- $<$<COMPILE_LANGUAGE:C>:-Wall -pedantic -std=c90>
++ $<$<COMPILE_LANGUAGE:C>:-Wall -pedantic -std=gnu90>
+ $<$<COMPILE_LANGUAGE:CXX>:-Wall -pedantic -std=gnu++98>
+ )
+ endif()