option to skip compiling the -cmd executable (#26)
There's already a `-DYUZU_ROOM` flag that can be set to OFF to skip compiling that executable. This adds a `-DYUZU_CMD` flag that is ON by default, but can be set to OFF to also skip compiling the yuzu-cmd executable. Setting both to OFF saves **_a lot_** of compiling time if you don't ever use either the yuzu-room or yuzu-cmd exes. Reviewed-on: http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/pulls/26 Co-authored-by: anon <anon@noreply.localhost> Co-committed-by: anon <anon@noreply.localhost>
This commit is contained in:
parent
a41955cc58
commit
a1c2940b31
2 changed files with 50 additions and 46 deletions
|
@ -56,6 +56,8 @@ option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android"
|
||||||
|
|
||||||
CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF)
|
CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF)
|
||||||
|
|
||||||
|
option(YUZU_CMD "Compile the -cmd executable (can disable if -cmd is unused)" ON)
|
||||||
|
|
||||||
CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF)
|
CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF)
|
||||||
|
|
||||||
option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}")
|
option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}")
|
||||||
|
|
|
@ -12,54 +12,56 @@ function(create_resource file output filename)
|
||||||
file(WRITE "${PROJECT_BINARY_DIR}/dist/${output}" "const unsigned char ${filename}[] = {${filedata}};\nconst unsigned ${filename}_size = sizeof(${filename});\n")
|
file(WRITE "${PROJECT_BINARY_DIR}/dist/${output}" "const unsigned char ${filename}[] = {${filedata}};\nconst unsigned ${filename}_size = sizeof(${filename});\n")
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
add_executable(yuzu-cmd
|
if (YUZU_CMD)
|
||||||
emu_window/emu_window_sdl2.cpp
|
add_executable(yuzu-cmd
|
||||||
emu_window/emu_window_sdl2.h
|
emu_window/emu_window_sdl2.cpp
|
||||||
emu_window/emu_window_sdl2_gl.cpp
|
emu_window/emu_window_sdl2.h
|
||||||
emu_window/emu_window_sdl2_gl.h
|
emu_window/emu_window_sdl2_gl.cpp
|
||||||
emu_window/emu_window_sdl2_null.cpp
|
emu_window/emu_window_sdl2_gl.h
|
||||||
emu_window/emu_window_sdl2_null.h
|
emu_window/emu_window_sdl2_null.cpp
|
||||||
emu_window/emu_window_sdl2_vk.cpp
|
emu_window/emu_window_sdl2_null.h
|
||||||
emu_window/emu_window_sdl2_vk.h
|
emu_window/emu_window_sdl2_vk.cpp
|
||||||
precompiled_headers.h
|
emu_window/emu_window_sdl2_vk.h
|
||||||
sdl_config.cpp
|
precompiled_headers.h
|
||||||
sdl_config.h
|
sdl_config.cpp
|
||||||
yuzu.cpp
|
sdl_config.h
|
||||||
yuzu.rc
|
yuzu.cpp
|
||||||
)
|
yuzu.rc
|
||||||
|
)
|
||||||
|
|
||||||
target_link_libraries(yuzu-cmd PRIVATE common core input_common frontend_common)
|
target_link_libraries(yuzu-cmd PRIVATE common core input_common frontend_common)
|
||||||
target_link_libraries(yuzu-cmd PRIVATE glad)
|
target_link_libraries(yuzu-cmd PRIVATE glad)
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
target_link_libraries(yuzu-cmd PRIVATE getopt)
|
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()
|
||||||
endif()
|
target_link_libraries(yuzu-cmd PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
|
||||||
|
|
||||||
if (MSVC)
|
create_resource("../../dist/yuzu.bmp" "yuzu_cmd/yuzu_icon.h" "yuzu_icon")
|
||||||
include(CopyYuzuSDLDeps)
|
target_include_directories(yuzu-cmd PRIVATE ${RESOURCES_DIR})
|
||||||
copy_yuzu_SDL_deps(yuzu-cmd)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (YUZU_USE_PRECOMPILED_HEADERS)
|
target_link_libraries(yuzu-cmd PRIVATE SDL2::SDL2 Vulkan::Headers)
|
||||||
target_precompile_headers(yuzu-cmd PRIVATE precompiled_headers.h)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
create_target_directory_groups(yuzu-cmd)
|
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)
|
||||||
|
endif()
|
Loading…
Reference in a new issue