0% found this document useful (0 votes)
14 views2 pages

CMake Lists

This document is a CMake configuration file for building the 'citra' executable, which includes various source files and headers. It conditionally adds source files based on enabled features like software rendering, OpenGL, and Vulkan, and links necessary libraries. Additionally, it includes installation instructions for UNIX systems and handles precompiled headers and bundling for MSVC builds.

Uploaded by

simongarci06
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views2 pages

CMake Lists

This document is a CMake configuration file for building the 'citra' executable, which includes various source files and headers. It conditionally adds source files based on enabled features like software rendering, OpenGL, and Vulkan, and links necessary libraries. Additionally, it includes installation instructions for UNIX systems and handles precompiled headers and bundling for MSVC builds.

Uploaded by

simongarci06
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)

add_executable(citra
[Link]
[Link]
[Link]
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()

You might also like