cmake: make compile with mingw-w64 GCC
This commit is contained in:
parent
4f210df86a
commit
51b4b05f0b
|
@ -43,3 +43,4 @@ CMakeLists.txt.user
|
|||
/.vscode/
|
||||
# Ignore flatpak-builder's cache dir
|
||||
.flatpak-builder
|
||||
CMakeUserPresets.json
|
||||
|
|
|
@ -185,7 +185,7 @@ endif()
|
|||
# as defined above.
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Binaries)
|
||||
|
||||
if (WIN32)
|
||||
if (MSVC)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Binary)
|
||||
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
|
||||
|
@ -528,7 +528,7 @@ if(ENABLE_EGL)
|
|||
endif()
|
||||
|
||||
if(ENCODE_FRAMEDUMPS)
|
||||
if(WIN32)
|
||||
if(MSVC)
|
||||
if(_M_X86_64)
|
||||
set(FFMPEG_DIR Externals/FFmpeg-bin/x64)
|
||||
elseif(_M_ARM_64)
|
||||
|
@ -751,8 +751,10 @@ else()
|
|||
message(STATUS "libsystemd not found, disabling traversal server watchdog support")
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
if (MSVC)
|
||||
include_directories(Externals/WIL/include)
|
||||
endif()
|
||||
if (WIN32)
|
||||
include_directories(Externals/OpenAL/include)
|
||||
endif()
|
||||
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"version": 2,
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "gcc-debug",
|
||||
"binaryDir": "build-gcc-debug",
|
||||
"generator": "Ninja",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug",
|
||||
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "clang-debug",
|
||||
"binaryDir": "build-clang-debug",
|
||||
"generator": "Ninja",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug",
|
||||
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -10,6 +10,7 @@ option(BUILD_RUST_LIBS "Build rust backends" OFF)
|
|||
option(BUNDLE_SPEEX "Bundle the speex library" OFF)
|
||||
option(LAZY_LOAD_LIBS "Lazily load shared libraries" ON)
|
||||
option(USE_SANITIZERS "Use sanitizers" ON)
|
||||
option(BUILD_TOOLS "Build tools" OFF)
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required (VERSION 3.2.0)
|
||||
cmake_minimum_required (VERSION 3.10.0)
|
||||
project (DiscordRPC)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 2.8.12)
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(enet)
|
||||
|
||||
|
|
|
@ -6,8 +6,9 @@ target_include_directories(hidapi PUBLIC hidapi-src/hidapi)
|
|||
|
||||
if(APPLE)
|
||||
target_sources(hidapi PRIVATE hidapi-src/mac/hid.c)
|
||||
elseif(MSVC)
|
||||
elseif(WIN32)
|
||||
target_sources(hidapi PRIVATE hidapi-src/windows/hid.c)
|
||||
target_link_libraries(hidapi PUBLIC setupapi)
|
||||
else()
|
||||
find_package(LIBUDEV)
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND LIBUDEV_FOUND)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(spng C)
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ add_library(usb STATIC EXCLUDE_FROM_ALL
|
|||
dolphin_disable_warnings(usb)
|
||||
|
||||
set_target_properties(usb PROPERTIES VERSION 1.0.26)
|
||||
if(WIN32)
|
||||
if(MSVC)
|
||||
target_include_directories(usb BEFORE PUBLIC libusb/libusb PRIVATE libusb/msvc)
|
||||
else()
|
||||
target_include_directories(usb
|
||||
|
@ -31,6 +31,7 @@ if(WIN32 OR CYGWIN)
|
|||
libusb/libusb/os/events_windows.c
|
||||
)
|
||||
set(PLATFORM_WINDOWS TRUE)
|
||||
set(ENABLE_LOGGING TRUE)
|
||||
elseif(APPLE)
|
||||
target_sources(usb PRIVATE libusb/libusb/os/darwin_usb.c)
|
||||
find_library(COREFOUNDATION_LIBRARY CoreFoundation)
|
||||
|
@ -92,7 +93,9 @@ include(CheckTypeSize)
|
|||
include(CheckSymbolExists)
|
||||
|
||||
check_include_files(asm/types.h HAVE_ASM_TYPES_H)
|
||||
check_function_exists(clock_gettime HAVE_CLOCK_GETTIME)
|
||||
if(NOT WIN32)
|
||||
check_function_exists(clock_gettime HAVE_CLOCK_GETTIME)
|
||||
endif()
|
||||
check_symbol_exists(EFD_CLOEXEC "sys/eventfd.h" HAVE_DECL_EFD_CLOEXEC)
|
||||
check_symbol_exists(EFD_NONBLOCK "sys/eventfd.h" HAVE_DECL_EFD_NONBLOCK)
|
||||
check_symbol_exists(TFD_CLOEXEC "sys/timerfd.h" HAVE_DECL_TFD_CLOEXEC)
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#undef ENABLE_DEBUG_LOGGING
|
||||
|
||||
/* Define to 1 to enable message logging. */
|
||||
#undef ENABLE_LOGGING
|
||||
#cmakedefine ENABLE_LOGGING 1
|
||||
|
||||
/* Define to 1 if you have the <asm/types.h> header file. */
|
||||
#cmakedefine HAVE_ASM_TYPES_H 1
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
# mbedtls, mbedx509, mbedcrypto and apidoc targets.
|
||||
#
|
||||
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
# https://cmake.org/cmake/help/latest/policy/CMP0011.html
|
||||
# Setting this policy is required in CMake >= 3.18.0, otherwise a warning is generated. The OLD
|
||||
|
|
|
@ -1,23 +1,9 @@
|
|||
cmake_minimum_required(VERSION 2.8.12)
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(miniupnpc C)
|
||||
set(MINIUPNPC_VERSION 1.9)
|
||||
set(MINIUPNPC_API_VERSION 14)
|
||||
|
||||
if(UNIX)
|
||||
add_definitions(-DMINIUPNPC_SET_SOCKET_TIMEOUT)
|
||||
add_definitions(-D_BSD_SOURCE -D_POSIX_C_SOURCE=1)
|
||||
elseif(WIN32)
|
||||
add_definitions(-D_WIN32_WINNT=0x0501)
|
||||
find_library(WINSOCK2_LIBRARY NAMES ws2_32 WS2_32 Ws2_32)
|
||||
find_library(IPHLPAPI_LIBRARY NAMES iphlpapi)
|
||||
set(LDLIBS ${WINSOCK2_LIBRARY} ${IPHLPAPI_LIBRARY} ${LDLIBS})
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
add_definitions(-DMACOSX -D_DARWIN_C_SOURCE)
|
||||
endif()
|
||||
|
||||
set(SRCS src/igd_desc_parse.c
|
||||
src/miniupnpc.c
|
||||
src/minixml.c
|
||||
|
@ -36,4 +22,16 @@ add_library(miniupnpc STATIC ${SRCS})
|
|||
dolphin_disable_warnings(miniupnpc)
|
||||
target_include_directories(miniupnpc PUBLIC src)
|
||||
|
||||
if(UNIX)
|
||||
target_compile_definitions(miniupnpc PRIVATE MINIUPNPC_SET_SOCKET_TIMEOUT)
|
||||
target_compile_definitions(miniupnpc PRIVATE _BSD_SOURCE _POSIX_C_SOURCE=1)
|
||||
elseif(WIN32)
|
||||
target_compile_definitions(miniupnpc PRIVATE -D_WIN32_WINNT=0x0501)
|
||||
target_link_libraries(miniupnpc PUBLIC ws2_32 iphlpapi)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
target_compile_definitions(miniupnpc PRIVATE MACOSX _DARWIN_C_SOURCE)
|
||||
endif()
|
||||
|
||||
add_library(Miniupnpc::miniupnpc ALIAS miniupnpc)
|
||||
|
|
|
@ -60,7 +60,7 @@ dolphin_disable_warnings(rcheevos)
|
|||
target_include_directories(rcheevos PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/rcheevos/include")
|
||||
target_include_directories(rcheevos INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
target_compile_definitions(rcheevos PRIVATE "RC_DISABLE_LUA=1" "RCHEEVOS_URL_SSL")
|
||||
target_compile_definitions(rcheevos PRIVATE "RC_CLIENT_SUPPORTS_HASH")
|
||||
target_compile_definitions(rcheevos PUBLIC "RC_CLIENT_SUPPORTS_HASH")
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
target_compile_definitions(rcheevos PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
||||
endif()
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
if(NOT MSVC)
|
||||
add_compile_options(-Wno-missing-declarations)
|
||||
endif()
|
||||
|
||||
add_subdirectory(AudioCommon)
|
||||
add_subdirectory(Common)
|
||||
add_subdirectory(Core)
|
||||
|
|
|
@ -206,6 +206,8 @@ elseif(WIN32)
|
|||
if (_M_X86_64)
|
||||
target_link_libraries(common PRIVATE opengl32.lib)
|
||||
endif()
|
||||
target_compile_definitions(common PRIVATE _WIN32_WINNT=0x0602)
|
||||
target_compile_options(common PRIVATE -mxsave)
|
||||
elseif (ANDROID)
|
||||
target_link_libraries(common
|
||||
PRIVATE
|
||||
|
@ -334,6 +336,7 @@ endif()
|
|||
|
||||
if(WIN32)
|
||||
target_sources(common PRIVATE HRWrap.h HRWrap.cpp)
|
||||
target_link_libraries(common PUBLIC qwave)
|
||||
endif()
|
||||
|
||||
if(USE_UPNP)
|
||||
|
@ -373,7 +376,7 @@ if(UNIX)
|
|||
if(SYSTEMD_FOUND)
|
||||
target_link_libraries(traversal_server PRIVATE ${SYSTEMD_LIBRARIES})
|
||||
endif()
|
||||
elseif(WIN32)
|
||||
elseif(MSVC)
|
||||
find_package(PowerShell REQUIRED)
|
||||
execute_process(
|
||||
COMMAND ${POWERSHELL_EXE} -Command "[System.Diagnostics.FileVersionInfo]::GetVersionInfo('$ENV{VCToolsRedistDir}vc_redist.x64.exe').ProductVersion"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
add_library(core
|
||||
add_library(core STATIC
|
||||
AchievementManager.cpp
|
||||
AchievementManager.h
|
||||
ActionReplay.cpp
|
||||
|
@ -715,7 +715,6 @@ if(WIN32)
|
|||
videod3d
|
||||
videod3d12
|
||||
setupapi.lib
|
||||
iphlpapi.lib
|
||||
)
|
||||
target_compile_definitions(core PRIVATE "-D_WINSOCK_DEPRECATED_NO_WARNINGS")
|
||||
elseif(APPLE)
|
||||
|
@ -783,8 +782,6 @@ if(MSVC)
|
|||
target_link_libraries(core PRIVATE use_pch)
|
||||
endif()
|
||||
|
||||
if(USE_RETRO_ACHIEVEMENTS)
|
||||
target_link_libraries(core PUBLIC rcheevos)
|
||||
target_compile_definitions(core PUBLIC -DUSE_RETRO_ACHIEVEMENTS)
|
||||
target_compile_definitions(core PUBLIC -DRC_CLIENT_SUPPORTS_HASH)
|
||||
if(NOT MSVC)
|
||||
target_compile_options(core PRIVATE -Wno-invalid-offsetof)
|
||||
endif()
|
||||
|
|
|
@ -84,3 +84,8 @@ if(MSVC)
|
|||
# Add precompiled header
|
||||
target_link_libraries(discio PRIVATE use_pch)
|
||||
endif()
|
||||
|
||||
if(USE_RETRO_ACHIEVEMENTS)
|
||||
target_link_libraries(discio PUBLIC rcheevos)
|
||||
target_compile_definitions(discio PUBLIC -DUSE_RETRO_ACHIEVEMENTS)
|
||||
endif()
|
||||
|
|
|
@ -12,6 +12,7 @@ endif()
|
|||
|
||||
if(WIN32)
|
||||
target_sources(dolphin-nogui PRIVATE PlatformWin32.cpp)
|
||||
target_link_libraries(dolphin-nogui PRIVATE Dwmapi.lib)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
|
@ -32,6 +33,11 @@ PRIVATE
|
|||
cpp-optparse
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(dolphin-nogui PRIVATE d3d11)
|
||||
target_link_options(dolphin-nogui PRIVATE -municode)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
target_link_libraries(dolphin-nogui
|
||||
PRIVATE
|
||||
|
|
|
@ -19,7 +19,7 @@ message(STATUS "Found Qt version ${Qt6_VERSION}")
|
|||
|
||||
set_property(TARGET Qt6::Core PROPERTY INTERFACE_COMPILE_FEATURES "")
|
||||
|
||||
add_executable(dolphin-emu
|
||||
add_executable(dolphin-emu WIN32
|
||||
AboutDialog.cpp
|
||||
AboutDialog.h
|
||||
CheatSearchFactoryWidget.cpp
|
||||
|
@ -439,6 +439,7 @@ if (WIN32)
|
|||
shell32.lib
|
||||
dwmapi.lib # Needed to set window decorations for dark theme
|
||||
)
|
||||
target_link_options(dolphin-emu PRIVATE -municode)
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
|
@ -490,11 +491,6 @@ if(WIN32)
|
|||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/qt.conf.win" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/qt.conf"
|
||||
)
|
||||
|
||||
# Delegate to Qt's official deployment binary on Windows to copy over the necessary Qt-specific libraries, etc.
|
||||
get_target_property(MOC_EXECUTABLE_LOCATION Qt6::moc IMPORTED_LOCATION)
|
||||
get_filename_component(QT_BINARY_DIRECTORY "${MOC_EXECUTABLE_LOCATION}" DIRECTORY)
|
||||
find_program(WINDEPLOYQT_EXE windeployqt HINTS "${QT_BINARY_DIRECTORY}")
|
||||
|
||||
# Note: We set the PATH for the duration of this command so that the
|
||||
# deployment application is able to locate the Qt libraries to copy.
|
||||
# if the necessary paths aren't already set beforehand.
|
||||
|
@ -511,13 +507,13 @@ if(WIN32)
|
|||
#
|
||||
add_custom_command(TARGET dolphin-emu POST_BUILD
|
||||
COMMAND "${CMAKE_COMMAND}" -E env PATH="${QT_BINARY_DIRECTORY}"
|
||||
"${WINDEPLOYQT_EXE}" --libdir="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
|
||||
"${WINDEPLOYQT_EXECUTABLE}" --libdir="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
|
||||
--plugindir="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/QtPlugins"
|
||||
$<IF:$<CONFIG:Debug>,--debug,--release>
|
||||
--no-translations
|
||||
--no-compiler-runtime
|
||||
--no-system-d3d-compiler
|
||||
--no-opengl-sw
|
||||
--verbose 0
|
||||
"$<TARGET_FILE:dolphin-emu>"
|
||||
)
|
||||
endif()
|
||||
|
|
|
@ -21,6 +21,10 @@ PRIVATE
|
|||
fmt::fmt
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
target_link_options(dolphin-tool PRIVATE -municode)
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
# Add precompiled header
|
||||
target_link_libraries(dolphin-tool PRIVATE use_pch)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
add_library(inputcommon
|
||||
add_library(inputcommon STATIC
|
||||
DynamicInputTextureManager.cpp
|
||||
DynamicInputTextureManager.h
|
||||
GCAdapter.cpp
|
||||
|
@ -101,13 +101,19 @@ if(WIN32)
|
|||
ControllerInterface/DInput/XInputFilter.h
|
||||
ControllerInterface/Win32/Win32.cpp
|
||||
ControllerInterface/Win32/Win32.h
|
||||
ControllerInterface/WGInput/WGInput.cpp
|
||||
ControllerInterface/WGInput/WGInput.h
|
||||
ControllerInterface/XInput/XInput.cpp
|
||||
ControllerInterface/XInput/XInput.h
|
||||
ControllerInterface/ForceFeedback/ForceFeedbackDevice.cpp
|
||||
ControllerInterface/ForceFeedback/ForceFeedbackDevice.h
|
||||
)
|
||||
target_compile_definitions(inputcommon PRIVATE WINVER=0x0602)
|
||||
if(MSVC)
|
||||
target_sources(inputcommon PRIVATE
|
||||
ControllerInterface/WGInput/WGInput.cpp
|
||||
ControllerInterface/WGInput/WGInput.h
|
||||
)
|
||||
endif()
|
||||
target_link_libraries(inputcommon PUBLIC cfgmgr32 dinput8 dinput)
|
||||
elseif(APPLE)
|
||||
target_sources(inputcommon PRIVATE
|
||||
ControllerInterface/Quartz/Quartz.h
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
add_library(videod3d
|
||||
add_library(videod3d STATIC
|
||||
D3DBase.cpp
|
||||
D3DBase.h
|
||||
D3DBoundingBox.cpp
|
||||
|
|
|
@ -12,6 +12,9 @@ target_link_libraries(winupdater PRIVATE
|
|||
Comctl32
|
||||
)
|
||||
|
||||
target_compile_definitions(winupdater PRIVATE _UNICODE UNICODE)
|
||||
target_link_options(winupdater PRIVATE -municode)
|
||||
|
||||
set_target_properties(winupdater PROPERTIES OUTPUT_NAME "Updater")
|
||||
|
||||
if(MSVC)
|
||||
|
|
Loading…
Reference in New Issue