mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-02-17 02:26:24 +01:00
![Andrea Pappacoda](/assets/img/avatar_default.png)
Improved, fixed and streamlined cmake files. Optionally use system libraries instead of vcpkg (-DENABLE_VCPKG=OFF)
100 lines
2.4 KiB
CMake
100 lines
2.4 KiB
CMake
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}")
|
|
endif()
|
|
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
# all ok
|
|
else()
|
|
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
|
|
elseif(UNIX)
|
|
if(NOT APPLE)
|
|
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(-fms-extensions)
|
|
add_definitions(-fpermissive)
|
|
add_definitions(-maes)
|
|
# warnings
|
|
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|
add_compile_options(-Wno-ambiguous-reversed-operator)
|
|
endif()
|
|
|
|
add_compile_options(-Wno-switch -Wno-ignored-attributes -Wno-deprecated-enum-enum-conversion)
|
|
endif()
|
|
|
|
add_definitions(-DVK_NO_PROTOTYPES)
|
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
|
add_subdirectory(Common)
|
|
add_subdirectory(gui)
|
|
add_subdirectory(Cafe)
|
|
add_subdirectory(Cemu)
|
|
add_subdirectory(config)
|
|
add_subdirectory(input)
|
|
add_subdirectory(audio)
|
|
add_subdirectory(util)
|
|
add_subdirectory(imgui)
|
|
add_subdirectory(resource)
|
|
add_subdirectory(asm)
|
|
|
|
if(PUBLIC_RELEASE)
|
|
add_executable(CemuBin WIN32
|
|
main.cpp
|
|
mainLLE.cpp
|
|
)
|
|
else()
|
|
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
|
|
)
|
|
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"
|
|
)
|
|
|
|
target_link_libraries(CemuBin PRIVATE
|
|
CemuAudio
|
|
CemuCafe
|
|
CemuCommon
|
|
CemuComponents
|
|
CemuConfig
|
|
CemuGui
|
|
CemuInput
|
|
CemuUtil
|
|
)
|
|
|
|
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()
|