diff options
Diffstat (limited to 'src/citron_cmd/CMakeLists.txt')
-rw-r--r-- | src/citron_cmd/CMakeLists.txt | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/citron_cmd/CMakeLists.txt b/src/citron_cmd/CMakeLists.txt new file mode 100644 index 000000000..ebd8fd738 --- /dev/null +++ b/src/citron_cmd/CMakeLists.txt @@ -0,0 +1,65 @@ +# SPDX-FileCopyrightText: 2018 yuzu Emulator Project +# SPDX-License-Identifier: GPL-2.0-or-later + +# Credits to Samantas5855 and others for this function. +function(create_resource file output filename) + # Read hex data from file + file(READ ${file} filedata HEX) + # Convert hex data for C compatibility + string(REGEX REPLACE "([0-9a-f][0-9a-f])" "0x\\1," filedata ${filedata}) + # Write data to output file + set(RESOURCES_DIR "${PROJECT_BINARY_DIR}/dist" PARENT_SCOPE) + file(WRITE "${PROJECT_BINARY_DIR}/dist/${output}" "const unsigned char ${filename}[] = {${filedata}};\nconst unsigned ${filename}_size = sizeof(${filename});\n") +endfunction() + +add_executable(yuzu-cmd + emu_window/emu_window_sdl2.cpp + emu_window/emu_window_sdl2.h + emu_window/emu_window_sdl2_gl.cpp + emu_window/emu_window_sdl2_gl.h + emu_window/emu_window_sdl2_null.cpp + emu_window/emu_window_sdl2_null.h + emu_window/emu_window_sdl2_vk.cpp + emu_window/emu_window_sdl2_vk.h + precompiled_headers.h + sdl_config.cpp + sdl_config.h + yuzu.cpp + yuzu.rc +) + +target_link_libraries(yuzu-cmd PRIVATE common core input_common frontend_common) +target_link_libraries(yuzu-cmd PRIVATE glad) +if (MSVC) + target_link_libraries(yuzu-cmd PRIVATE getopt) +endif() +target_link_libraries(yuzu-cmd PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads) + +create_resource("../../dist/yuzu.bmp" "yuzu_cmd/yuzu_icon.h" "yuzu_icon") +target_include_directories(yuzu-cmd PRIVATE ${RESOURCES_DIR}) + +target_link_libraries(yuzu-cmd PRIVATE SDL2::SDL2 Vulkan::Headers) + +if(UNIX AND NOT APPLE) + install(TARGETS yuzu-cmd) +endif() + +if(WIN32) + # compile as a win32 gui application instead of a console application + if(MSVC) + set_target_properties(yuzu-cmd PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") + elseif(MINGW) + set_target_properties(yuzu-cmd PROPERTIES LINK_FLAGS_RELEASE "-Wl,--subsystem,windows") + endif() +endif() + +if (MSVC) + include(CopyYuzuSDLDeps) + copy_yuzu_SDL_deps(yuzu-cmd) +endif() + +if (YUZU_USE_PRECOMPILED_HEADERS) + target_precompile_headers(yuzu-cmd PRIVATE precompiled_headers.h) +endif() + +create_target_directory_groups(yuzu-cmd) |