set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules) add_executable(citra citra.cpp citra.rc config.cpp config.h default_ini.h emu_window/emu_window_sdl2.cpp emu_window/emu_window_sdl2.h precompiled_headers.h resource.h ) if (ENABLE_SOFTWARE_RENDERER) target_sources(citra PRIVATE emu_window/emu_window_sdl2_sw.cpp emu_window/emu_window_sdl2_sw.h ) endif() if (ENABLE_OPENGL) target_sources(citra PRIVATE emu_window/emu_window_sdl2_gl.cpp emu_window/emu_window_sdl2_gl.h ) endif() if (ENABLE_VULKAN) target_sources(citra PRIVATE emu_window/emu_window_sdl2_vk.cpp emu_window/emu_window_sdl2_vk.h ) endif() create_target_directory_groups(citra) target_link_libraries(citra PRIVATE citra_common citra_core input_common network) target_link_libraries(citra PRIVATE inih) if (MSVC) target_link_libraries(citra PRIVATE getopt) endif() target_link_libraries(citra PRIVATE ${PLATFORM_LIBRARIES} SDL2::SDL2 Threads::Threads) if (ENABLE_OPENGL) target_link_libraries(citra PRIVATE glad) endif() if(UNIX AND NOT APPLE) install(TARGETS citra RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") endif() if (CITRA_USE_PRECOMPILED_HEADERS) target_precompile_headers(citra PRIVATE precompiled_headers.h) endif() # Bundle in-place on MSVC so dependencies can be resolved by builds. if (MSVC) include(BundleTarget) bundle_target_in_place(citra) endif()