mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-11 09:18:30 +12:00
build: minor refactoring and fixes
- Fix target_precompile_headers() usage; the CemuCommon target exposes the src/Common/precompiled.h precompiled header as part of its public interface with target_precompile_headers(CemuCommon PUBLIC precompiled.h), so all the other targets wanting to use the precompiled header have to link to the CemuCommon target with target_precompile_headers(TargetName PRIVATE CemuCommon). - Set the project version to 2.0 - Set RUNTIME_OUTPUT_DIRECTORY instead of only their _DEBUG and _RELEASE variants, fixing the compilation when neither build types are defined - Use a consistent indentation style (tabs, like in the .cpp files) - Use "modern" variants of some functions, e.g. add_definitions -> add_compile_definitions
This commit is contained in:
parent
b1e92f1779
commit
719ee90b27
13 changed files with 208 additions and 235 deletions
|
@ -2,42 +2,43 @@ project(cemuMain)
|
|||
|
||||
option(CEMU_CXX_FLAGS "Additional flags used for compiling Cemu source code")
|
||||
if(CEMU_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CEMU_CXX_FLAGS}")
|
||||
add_compile_options(${CEMU_CXX_FLAGS})
|
||||
endif()
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
# all ok
|
||||
else()
|
||||
message( FATAL_ERROR "Pointers are not 64bit" )
|
||||
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
message( FATAL_ERROR "Pointers are not 64bit" )
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
add_definitions(-DWIN32_LEAN_AND_MEAN)
|
||||
add_definitions(-DCURL_STATICLIB)
|
||||
#add_definitions(-DVK_USE_PLATFORM_WIN32_KHR)
|
||||
# _CRT_SECURE_NO_WARNINGS
|
||||
# _WINSOCK_DEPRECATED_NO_WARNINGS
|
||||
# _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
|
||||
# _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
|
||||
add_compile_definitions(WIN32_LEAN_AND_MEAN CURL_STATICLIB)
|
||||
#add_compile_definitions(VK_USE_PLATFORM_WIN32_KHR)
|
||||
# _CRT_SECURE_NO_WARNINGS
|
||||
# _WINSOCK_DEPRECATED_NO_WARNINGS
|
||||
# _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
|
||||
# _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
|
||||
elseif(UNIX)
|
||||
if(APPLE)
|
||||
add_definitions(-D_XOPEN_SOURCE)
|
||||
add_definitions(-DVK_USE_PLATFORM_MACOS_MVK)
|
||||
add_definitions(-DVK_USE_PLATFORM_METAL_EXT)
|
||||
else()
|
||||
add_definitions(-DVK_USE_PLATFORM_XLIB_KHR) # legacy. Do we need to support XLIB surfaces?
|
||||
add_definitions(-DVK_USE_PLATFORM_XCB_KHR)
|
||||
endif()
|
||||
add_definitions(-maes)
|
||||
# warnings
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
add_compile_options(-Wno-ambiguous-reversed-operator)
|
||||
endif()
|
||||
if(APPLE)
|
||||
add_compile_definitions(
|
||||
_XOPEN_SOURCE
|
||||
VK_USE_PLATFORM_MACOS_MVK
|
||||
VK_USE_PLATFORM_METAL_EXT
|
||||
)
|
||||
else()
|
||||
add_compile_definitions(
|
||||
VK_USE_PLATFORM_XLIB_KHR # legacy. Do we need to support XLIB surfaces?
|
||||
VK_USE_PLATFORM_XCB_KHR
|
||||
)
|
||||
endif()
|
||||
add_compile_options(-maes)
|
||||
# warnings
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
||||
add_compile_options(-Wno-ambiguous-reversed-operator)
|
||||
endif()
|
||||
|
||||
add_compile_options(-Wno-multichar -Wno-invalid-offsetof -Wno-switch -Wno-ignored-attributes -Wno-deprecated-enum-enum-conversion)
|
||||
endif()
|
||||
|
||||
add_definitions(-DVK_NO_PROTOTYPES)
|
||||
add_compile_definitions(VK_NO_PROTOTYPES)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
|
@ -54,32 +55,29 @@ add_subdirectory(resource)
|
|||
add_subdirectory(asm)
|
||||
|
||||
if(PUBLIC_RELEASE)
|
||||
add_executable(CemuBin WIN32
|
||||
main.cpp
|
||||
mainLLE.cpp
|
||||
)
|
||||
add_executable(CemuBin WIN32
|
||||
main.cpp
|
||||
mainLLE.cpp
|
||||
)
|
||||
else()
|
||||
add_executable(CemuBin
|
||||
main.cpp
|
||||
mainLLE.cpp
|
||||
)
|
||||
add_executable(CemuBin
|
||||
main.cpp
|
||||
mainLLE.cpp
|
||||
)
|
||||
endif()
|
||||
|
||||
target_precompile_headers(CemuBin PRIVATE Common/precompiled.h)
|
||||
|
||||
if(WIN32)
|
||||
target_sources(CemuBin PRIVATE
|
||||
resource/cemu.rc
|
||||
)
|
||||
target_sources(CemuBin PRIVATE
|
||||
resource/cemu.rc
|
||||
)
|
||||
endif()
|
||||
|
||||
set_property(TARGET CemuBin PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
|
||||
set_target_properties(CemuBin PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../bin/
|
||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../bin/
|
||||
OUTPUT_NAME "Cemu"
|
||||
)
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../bin/"
|
||||
OUTPUT_NAME "Cemu"
|
||||
)
|
||||
|
||||
target_link_libraries(CemuBin PRIVATE
|
||||
CemuAudio
|
||||
|
@ -90,12 +88,10 @@ target_link_libraries(CemuBin PRIVATE
|
|||
CemuGui
|
||||
CemuInput
|
||||
CemuUtil
|
||||
OpenGL::GL
|
||||
SDL2::SDL2
|
||||
)
|
||||
|
||||
target_link_libraries(CemuBin PRIVATE CemuAsm)
|
||||
target_link_libraries(CemuBin PRIVATE SDL2::SDL2 SDL2::SDL2main) # is SDL2main needed?
|
||||
target_link_libraries(CemuBin PRIVATE imguiImpl OpenGL::GL)
|
||||
|
||||
if (ENABLE_WXWIDGETS)
|
||||
target_link_libraries(CemuBin PRIVATE wx::base wx::core)
|
||||
endif()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue