summaryrefslogblamecommitdiffstats
path: root/src/core/CMakeLists.txt
blob: 4f6a87b0a7cfac0871f20b5b9213025c5c874f9c (plain) (tree)
1
2
3
4
5
6
7
8
9





                                                                                                             

                       
                         

                             

                               

                 

            

                

                   

                        

                        
                       




                               

                                     

                                   

                                   

                            

                           

                                

                                 
                        
                     
                                  
                                

                          

                                  
                   

                             

                          

                                     

                              

                                 

                                 

                      

                              



                                 

                                   











                                                                     

                                         

                                       

                                           

                                              

                                              

                    

                           

                            

                           



                           
                         
                        

                           

                            



                                         

                                       

                                          

                                    




                                   

                                             

                       

                                  

                     

                                  



                                 

                           
                       





                               

                        

                         

                          

                                     

                                 

                                 

                            









                                 

                         

                                  



                              

                                 


                

                           



                              

                              

                              
                            

                                       

                         

                                

                                

                                      



                                              

                                             

                                                

                                          





                           

                           



                             

                                  

                                 





                                 

                                 

                               

                                  

                                  

                                  

                                  

                                  
                                  
                                

                                  
                              

                                


                                        

                             

                               

                           

                               

                           

                             

                             

                         

                               





                                 

                                         



                                      

                                      

                           
                               

                                 

                                    






                             

                                

                           

                           

                           

                           
                            

















                                                   

                           

                           

                           

                         

                              

                           

                           

                                   

                           

                           

                           



                                

                             

                           

                             
                           

                               



                           




                                               

                                             



                                                 

                                              



                                              



                                       
                              

                               

                                



                                          

                             

                               

                             

                           

                         

                               

                           

                           

                           

                           







                                



                                 

                               

                                

                               
                                    


                                   





                              

                           

                                  

                             

                                          

                           



                                         



                           



                           

                             

                                          

                  

                  

                     

                  

                  



                  

                  

                  




                             


                  

                  

                



                         

                     
 
 
                                    
 
                                                                       
                                                                                             








                                                                                              
                       
                                                                 
                                                   
       







                                                
if (YUZU_ENABLE_BOXCAT)
    set(BCAT_BOXCAT_ADDITIONAL_SOURCES hle/service/bcat/backend/boxcat.cpp hle/service/bcat/backend/boxcat.h)
else()
    set(BCAT_BOXCAT_ADDITIONAL_SOURCES)
endif()

add_library(core STATIC
    arm/arm_interface.h
    arm/arm_interface.cpp
    arm/exclusive_monitor.cpp
    arm/exclusive_monitor.h
    arm/unicorn/arm_unicorn.cpp
    arm/unicorn/arm_unicorn.h
    constants.cpp
    constants.h
    core.cpp
    core.h
    core_cpu.cpp
    core_cpu.h
    core_timing.cpp
    core_timing.h
    core_timing_util.cpp
    core_timing_util.h
    cpu_core_manager.cpp
    cpu_core_manager.h
    crypto/aes_util.cpp
    crypto/aes_util.h
    crypto/encryption_layer.cpp
    crypto/encryption_layer.h
    crypto/key_manager.cpp
    crypto/key_manager.h
    crypto/partition_data_manager.cpp
    crypto/partition_data_manager.h
    crypto/ctr_encryption_layer.cpp
    crypto/ctr_encryption_layer.h
    crypto/xts_encryption_layer.cpp
    crypto/xts_encryption_layer.h
    file_sys/bis_factory.cpp
    file_sys/bis_factory.h
    file_sys/card_image.cpp
    file_sys/card_image.h
    file_sys/content_archive.cpp
    file_sys/content_archive.h
    file_sys/control_metadata.cpp
    file_sys/control_metadata.h
    file_sys/directory.h
    file_sys/errors.h
    file_sys/fsmitm_romfsbuild.cpp
    file_sys/fsmitm_romfsbuild.h
    file_sys/ips_layer.cpp
    file_sys/ips_layer.h
    file_sys/kernel_executable.cpp
    file_sys/kernel_executable.h
    file_sys/mode.h
    file_sys/nca_metadata.cpp
    file_sys/nca_metadata.h
    file_sys/nca_patch.cpp
    file_sys/nca_patch.h
    file_sys/partition_filesystem.cpp
    file_sys/partition_filesystem.h
    file_sys/patch_manager.cpp
    file_sys/patch_manager.h
    file_sys/program_metadata.cpp
    file_sys/program_metadata.h
    file_sys/registered_cache.cpp
    file_sys/registered_cache.h
    file_sys/romfs.cpp
    file_sys/romfs.h
    file_sys/romfs_factory.cpp
    file_sys/romfs_factory.h
    file_sys/savedata_factory.cpp
    file_sys/savedata_factory.h
    file_sys/sdmc_factory.cpp
    file_sys/sdmc_factory.h
    file_sys/submission_package.cpp
    file_sys/submission_package.h
    file_sys/system_archive/data/font_chinese_simplified.cpp
    file_sys/system_archive/data/font_chinese_simplified.h
    file_sys/system_archive/data/font_chinese_traditional.cpp
    file_sys/system_archive/data/font_chinese_traditional.h
    file_sys/system_archive/data/font_extended_chinese_simplified.cpp
    file_sys/system_archive/data/font_extended_chinese_simplified.h
    file_sys/system_archive/data/font_korean.cpp
    file_sys/system_archive/data/font_korean.h
    file_sys/system_archive/data/font_nintendo_extended.cpp
    file_sys/system_archive/data/font_nintendo_extended.h
    file_sys/system_archive/data/font_standard.cpp
    file_sys/system_archive/data/font_standard.h
    file_sys/system_archive/mii_model.cpp
    file_sys/system_archive/mii_model.h
    file_sys/system_archive/ng_word.cpp
    file_sys/system_archive/ng_word.h
    file_sys/system_archive/shared_font.cpp
    file_sys/system_archive/shared_font.h
    file_sys/system_archive/system_archive.cpp
    file_sys/system_archive/system_archive.h
    file_sys/system_archive/system_version.cpp
    file_sys/system_archive/system_version.h
    file_sys/vfs.cpp
    file_sys/vfs.h
    file_sys/vfs_concat.cpp
    file_sys/vfs_concat.h
    file_sys/vfs_layered.cpp
    file_sys/vfs_layered.h
    file_sys/vfs_libzip.cpp
    file_sys/vfs_libzip.h
    file_sys/vfs_offset.cpp
    file_sys/vfs_offset.h
    file_sys/vfs_real.cpp
    file_sys/vfs_real.h
    file_sys/vfs_static.h
    file_sys/vfs_types.h
    file_sys/vfs_vector.cpp
    file_sys/vfs_vector.h
    file_sys/xts_archive.cpp
    file_sys/xts_archive.h
    frontend/applets/error.cpp
    frontend/applets/error.h
    frontend/applets/general_frontend.cpp
    frontend/applets/general_frontend.h
    frontend/applets/profile_select.cpp
    frontend/applets/profile_select.h
    frontend/applets/software_keyboard.cpp
    frontend/applets/software_keyboard.h
    frontend/applets/web_browser.cpp
    frontend/applets/web_browser.h
    frontend/emu_window.cpp
    frontend/emu_window.h
    frontend/framebuffer_layout.cpp
    frontend/framebuffer_layout.h
    frontend/input.h
    frontend/scope_acquire_window_context.cpp
    frontend/scope_acquire_window_context.h
    gdbstub/gdbstub.cpp
    gdbstub/gdbstub.h
    hardware_interrupt_manager.cpp
    hardware_interrupt_manager.h
    hle/ipc.h
    hle/ipc_helpers.h
    hle/kernel/address_arbiter.cpp
    hle/kernel/address_arbiter.h
    hle/kernel/client_port.cpp
    hle/kernel/client_port.h
    hle/kernel/client_session.cpp
    hle/kernel/client_session.h
    hle/kernel/code_set.cpp
    hle/kernel/code_set.h
    hle/kernel/errors.h
    hle/kernel/handle_table.cpp
    hle/kernel/handle_table.h
    hle/kernel/hle_ipc.cpp
    hle/kernel/hle_ipc.h
    hle/kernel/kernel.cpp
    hle/kernel/kernel.h
    hle/kernel/mutex.cpp
    hle/kernel/mutex.h
    hle/kernel/object.cpp
    hle/kernel/object.h
    hle/kernel/process.cpp
    hle/kernel/process.h
    hle/kernel/process_capability.cpp
    hle/kernel/process_capability.h
    hle/kernel/readable_event.cpp
    hle/kernel/readable_event.h
    hle/kernel/resource_limit.cpp
    hle/kernel/resource_limit.h
    hle/kernel/scheduler.cpp
    hle/kernel/scheduler.h
    hle/kernel/server_port.cpp
    hle/kernel/server_port.h
    hle/kernel/server_session.cpp
    hle/kernel/server_session.h
    hle/kernel/session.h
    hle/kernel/shared_memory.cpp
    hle/kernel/shared_memory.h
    hle/kernel/svc.cpp
    hle/kernel/svc.h
    hle/kernel/svc_wrap.h
    hle/kernel/thread.cpp
    hle/kernel/thread.h
    hle/kernel/transfer_memory.cpp
    hle/kernel/transfer_memory.h
    hle/kernel/vm_manager.cpp
    hle/kernel/vm_manager.h
    hle/kernel/wait_object.cpp
    hle/kernel/wait_object.h
    hle/kernel/writable_event.cpp
    hle/kernel/writable_event.h
    hle/lock.cpp
    hle/lock.h
    hle/result.h
    hle/service/acc/acc.cpp
    hle/service/acc/acc.h
    hle/service/acc/acc_aa.cpp
    hle/service/acc/acc_aa.h
    hle/service/acc/acc_su.cpp
    hle/service/acc/acc_su.h
    hle/service/acc/acc_u0.cpp
    hle/service/acc/acc_u0.h
    hle/service/acc/acc_u1.cpp
    hle/service/acc/acc_u1.h
    hle/service/acc/errors.h
    hle/service/acc/profile_manager.cpp
    hle/service/acc/profile_manager.h
    hle/service/am/am.cpp
    hle/service/am/am.h
    hle/service/am/applet_ae.cpp
    hle/service/am/applet_ae.h
    hle/service/am/applet_oe.cpp
    hle/service/am/applet_oe.h
    hle/service/am/applets/applets.cpp
    hle/service/am/applets/applets.h
    hle/service/am/applets/error.cpp
    hle/service/am/applets/error.h
    hle/service/am/applets/general_backend.cpp
    hle/service/am/applets/general_backend.h
    hle/service/am/applets/profile_select.cpp
    hle/service/am/applets/profile_select.h
    hle/service/am/applets/software_keyboard.cpp
    hle/service/am/applets/software_keyboard.h
    hle/service/am/applets/web_browser.cpp
    hle/service/am/applets/web_browser.h
    hle/service/am/idle.cpp
    hle/service/am/idle.h
    hle/service/am/omm.cpp
    hle/service/am/omm.h
    hle/service/am/spsm.cpp
    hle/service/am/spsm.h
    hle/service/am/tcap.cpp
    hle/service/am/tcap.h
    hle/service/aoc/aoc_u.cpp
    hle/service/aoc/aoc_u.h
    hle/service/apm/apm.cpp
    hle/service/apm/apm.h
    hle/service/apm/controller.cpp
    hle/service/apm/controller.h
    hle/service/apm/interface.cpp
    hle/service/apm/interface.h
    hle/service/audio/audctl.cpp
    hle/service/audio/audctl.h
    hle/service/audio/auddbg.cpp
    hle/service/audio/auddbg.h
    hle/service/audio/audin_a.cpp
    hle/service/audio/audin_a.h
    hle/service/audio/audin_u.cpp
    hle/service/audio/audin_u.h
    hle/service/audio/audio.cpp
    hle/service/audio/audio.h
    hle/service/audio/audout_a.cpp
    hle/service/audio/audout_a.h
    hle/service/audio/audout_u.cpp
    hle/service/audio/audout_u.h
    hle/service/audio/audrec_a.cpp
    hle/service/audio/audrec_a.h
    hle/service/audio/audrec_u.cpp
    hle/service/audio/audrec_u.h
    hle/service/audio/audren_a.cpp
    hle/service/audio/audren_a.h
    hle/service/audio/audren_u.cpp
    hle/service/audio/audren_u.h
    hle/service/audio/codecctl.cpp
    hle/service/audio/codecctl.h
    hle/service/audio/errors.h
    hle/service/audio/hwopus.cpp
    hle/service/audio/hwopus.h
    hle/service/bcat/backend/backend.cpp
    hle/service/bcat/backend/backend.h
    ${BCAT_BOXCAT_ADDITIONAL_SOURCES}
    hle/service/bcat/bcat.cpp
    hle/service/bcat/bcat.h
    hle/service/bcat/module.cpp
    hle/service/bcat/module.h
    hle/service/bpc/bpc.cpp
    hle/service/bpc/bpc.h
    hle/service/btdrv/btdrv.cpp
    hle/service/btdrv/btdrv.h
    hle/service/btm/btm.cpp
    hle/service/btm/btm.h
    hle/service/caps/caps.cpp
    hle/service/caps/caps.h
    hle/service/erpt/erpt.cpp
    hle/service/erpt/erpt.h
    hle/service/es/es.cpp
    hle/service/es/es.h
    hle/service/eupld/eupld.cpp
    hle/service/eupld/eupld.h
    hle/service/fatal/fatal.cpp
    hle/service/fatal/fatal.h
    hle/service/fatal/fatal_p.cpp
    hle/service/fatal/fatal_p.h
    hle/service/fatal/fatal_u.cpp
    hle/service/fatal/fatal_u.h
    hle/service/filesystem/filesystem.cpp
    hle/service/filesystem/filesystem.h
    hle/service/filesystem/fsp_ldr.cpp
    hle/service/filesystem/fsp_ldr.h
    hle/service/filesystem/fsp_pr.cpp
    hle/service/filesystem/fsp_pr.h
    hle/service/filesystem/fsp_srv.cpp
    hle/service/filesystem/fsp_srv.h
    hle/service/fgm/fgm.cpp
    hle/service/fgm/fgm.h
    hle/service/friend/errors.h
    hle/service/friend/friend.cpp
    hle/service/friend/friend.h
    hle/service/friend/interface.cpp
    hle/service/friend/interface.h
    hle/service/glue/arp.cpp
    hle/service/glue/arp.h
    hle/service/glue/bgtc.cpp
    hle/service/glue/bgtc.h
    hle/service/glue/errors.h
    hle/service/glue/glue.cpp
    hle/service/glue/glue.h
    hle/service/glue/manager.cpp
    hle/service/glue/manager.h
    hle/service/grc/grc.cpp
    hle/service/grc/grc.h
    hle/service/hid/hid.cpp
    hle/service/hid/hid.h
    hle/service/hid/irs.cpp
    hle/service/hid/irs.h
    hle/service/hid/xcd.cpp
    hle/service/hid/xcd.h
    hle/service/hid/errors.h
    hle/service/hid/controllers/controller_base.cpp
    hle/service/hid/controllers/controller_base.h
    hle/service/hid/controllers/debug_pad.cpp
    hle/service/hid/controllers/debug_pad.h
    hle/service/hid/controllers/gesture.cpp
    hle/service/hid/controllers/gesture.h
    hle/service/hid/controllers/keyboard.cpp
    hle/service/hid/controllers/keyboard.h
    hle/service/hid/controllers/mouse.cpp
    hle/service/hid/controllers/mouse.h
    hle/service/hid/controllers/npad.cpp
    hle/service/hid/controllers/npad.h
    hle/service/hid/controllers/stubbed.cpp
    hle/service/hid/controllers/stubbed.h
    hle/service/hid/controllers/touchscreen.cpp
    hle/service/hid/controllers/touchscreen.h
    hle/service/hid/controllers/xpad.cpp
    hle/service/hid/controllers/xpad.h
    hle/service/lbl/lbl.cpp
    hle/service/lbl/lbl.h
    hle/service/ldn/ldn.cpp
    hle/service/ldn/ldn.h
    hle/service/ldr/ldr.cpp
    hle/service/ldr/ldr.h
    hle/service/lm/lm.cpp
    hle/service/lm/lm.h
    hle/service/lm/manager.cpp
    hle/service/lm/manager.h
    hle/service/mig/mig.cpp
    hle/service/mig/mig.h
    hle/service/mii/mii.cpp
    hle/service/mii/mii.h
    hle/service/mii/mii_manager.cpp
    hle/service/mii/mii_manager.h
    hle/service/mm/mm_u.cpp
    hle/service/mm/mm_u.h
    hle/service/ncm/ncm.cpp
    hle/service/ncm/ncm.h
    hle/service/nfc/nfc.cpp
    hle/service/nfc/nfc.h
    hle/service/nfp/nfp.cpp
    hle/service/nfp/nfp.h
    hle/service/nfp/nfp_user.cpp
    hle/service/nfp/nfp_user.h
    hle/service/nifm/nifm.cpp
    hle/service/nifm/nifm.h
    hle/service/nim/nim.cpp
    hle/service/nim/nim.h
    hle/service/npns/npns.cpp
    hle/service/npns/npns.h
    hle/service/ns/errors.h
    hle/service/ns/language.cpp
    hle/service/ns/language.h
    hle/service/ns/ns.cpp
    hle/service/ns/ns.h
    hle/service/ns/pl_u.cpp
    hle/service/ns/pl_u.h
    hle/service/nvdrv/devices/nvdevice.h
    hle/service/nvdrv/devices/nvdisp_disp0.cpp
    hle/service/nvdrv/devices/nvdisp_disp0.h
    hle/service/nvdrv/devices/nvhost_as_gpu.cpp
    hle/service/nvdrv/devices/nvhost_as_gpu.h
    hle/service/nvdrv/devices/nvhost_ctrl.cpp
    hle/service/nvdrv/devices/nvhost_ctrl.h
    hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp
    hle/service/nvdrv/devices/nvhost_ctrl_gpu.h
    hle/service/nvdrv/devices/nvhost_gpu.cpp
    hle/service/nvdrv/devices/nvhost_gpu.h
    hle/service/nvdrv/devices/nvhost_nvdec.cpp
    hle/service/nvdrv/devices/nvhost_nvdec.h
    hle/service/nvdrv/devices/nvhost_nvjpg.cpp
    hle/service/nvdrv/devices/nvhost_nvjpg.h
    hle/service/nvdrv/devices/nvhost_vic.cpp
    hle/service/nvdrv/devices/nvhost_vic.h
    hle/service/nvdrv/devices/nvmap.cpp
    hle/service/nvdrv/devices/nvmap.h
    hle/service/nvdrv/interface.cpp
    hle/service/nvdrv/interface.h
    hle/service/nvdrv/nvdata.h
    hle/service/nvdrv/nvdrv.cpp
    hle/service/nvdrv/nvdrv.h
    hle/service/nvdrv/nvmemp.cpp
    hle/service/nvdrv/nvmemp.h
    hle/service/nvflinger/buffer_queue.cpp
    hle/service/nvflinger/buffer_queue.h
    hle/service/nvflinger/nvflinger.cpp
    hle/service/nvflinger/nvflinger.h
    hle/service/pcie/pcie.cpp
    hle/service/pcie/pcie.h
    hle/service/pctl/module.cpp
    hle/service/pctl/module.h
    hle/service/pctl/pctl.cpp
    hle/service/pctl/pctl.h
    hle/service/pcv/pcv.cpp
    hle/service/pcv/pcv.h
    hle/service/pm/pm.cpp
    hle/service/pm/pm.h
    hle/service/prepo/prepo.cpp
    hle/service/prepo/prepo.h
    hle/service/psc/psc.cpp
    hle/service/psc/psc.h
    hle/service/ptm/psm.cpp
    hle/service/ptm/psm.h
    hle/service/service.cpp
    hle/service/service.h
    hle/service/set/set.cpp
    hle/service/set/set.h
    hle/service/set/set_cal.cpp
    hle/service/set/set_cal.h
    hle/service/set/set_fd.cpp
    hle/service/set/set_fd.h
    hle/service/set/set_sys.cpp
    hle/service/set/set_sys.h
    hle/service/set/settings.cpp
    hle/service/set/settings.h
    hle/service/sm/controller.cpp
    hle/service/sm/controller.h
    hle/service/sm/sm.cpp
    hle/service/sm/sm.h
    hle/service/sockets/bsd.cpp
    hle/service/sockets/bsd.h
    hle/service/sockets/ethc.cpp
    hle/service/sockets/ethc.h
    hle/service/sockets/nsd.cpp
    hle/service/sockets/nsd.h
    hle/service/sockets/sfdnsres.cpp
    hle/service/sockets/sfdnsres.h
    hle/service/sockets/sockets.cpp
    hle/service/sockets/sockets.h
    hle/service/spl/csrng.cpp
    hle/service/spl/csrng.h
    hle/service/spl/module.cpp
    hle/service/spl/module.h
    hle/service/spl/spl.cpp
    hle/service/spl/spl.h
    hle/service/ssl/ssl.cpp
    hle/service/ssl/ssl.h
    hle/service/time/interface.cpp
    hle/service/time/interface.h
    hle/service/time/time.cpp
    hle/service/time/time.h
    hle/service/time/time_sharedmemory.cpp
    hle/service/time/time_sharedmemory.h
    hle/service/usb/usb.cpp
    hle/service/usb/usb.h
    hle/service/vi/display/vi_display.cpp
    hle/service/vi/display/vi_display.h
    hle/service/vi/layer/vi_layer.cpp
    hle/service/vi/layer/vi_layer.h
    hle/service/vi/vi.cpp
    hle/service/vi/vi.h
    hle/service/vi/vi_m.cpp
    hle/service/vi/vi_m.h
    hle/service/vi/vi_s.cpp
    hle/service/vi/vi_s.h
    hle/service/vi/vi_u.cpp
    hle/service/vi/vi_u.h
    hle/service/wlan/wlan.cpp
    hle/service/wlan/wlan.h
    loader/deconstructed_rom_directory.cpp
    loader/deconstructed_rom_directory.h
    loader/elf.cpp
    loader/elf.h
    loader/kip.cpp
    loader/kip.h
    loader/loader.cpp
    loader/loader.h
    loader/nax.cpp
    loader/nax.h
    loader/nca.cpp
    loader/nca.h
    loader/nro.cpp
    loader/nro.h
    loader/nso.cpp
    loader/nso.h
    loader/nsp.cpp
    loader/nsp.h
    loader/xci.cpp
    loader/xci.h
    memory/cheat_engine.cpp
    memory/cheat_engine.h
    memory/dmnt_cheat_types.h
    memory/dmnt_cheat_vm.cpp
    memory/dmnt_cheat_vm.h
    memory.cpp
    memory.h
    memory_setup.h
    perf_stats.cpp
    perf_stats.h
    reporter.cpp
    reporter.h
    settings.cpp
    settings.h
    telemetry_session.cpp
    telemetry_session.h
    tools/freezer.cpp
    tools/freezer.h
)

create_target_directory_groups(core)

target_link_libraries(core PUBLIC common PRIVATE audio_core video_core)
target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt json-headers mbedtls opus unicorn)

if (YUZU_ENABLE_BOXCAT)
    get_directory_property(OPENSSL_LIBS
        DIRECTORY ${PROJECT_SOURCE_DIR}/externals/libressl
        DEFINITION OPENSSL_LIBS)
    target_compile_definitions(core PRIVATE -DCPPHTTPLIB_OPENSSL_SUPPORT -DYUZU_ENABLE_BOXCAT)
    target_link_libraries(core PRIVATE httplib json-headers ${OPENSSL_LIBS} zip)
endif()

if (ENABLE_WEB_SERVICE)
    target_compile_definitions(core PRIVATE -DENABLE_WEB_SERVICE)
    target_link_libraries(core PRIVATE web_service)
endif()

if (ARCHITECTURE_x86_64)
    target_sources(core PRIVATE
        arm/dynarmic/arm_dynarmic.cpp
        arm/dynarmic/arm_dynarmic.h
    )
    target_link_libraries(core PRIVATE dynarmic)
endif()