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


                                                    

                       
                         

                 

                             

                   

                 



                   

                   
                       




                               

                                     

                                   

                                   






                                 

                     










































                                                                              

                            

                           
                           

                                

                                 
                        
                     
                                  
                                

                          

                                  
                   

                             

                                     

                              

                                 

                                 

                      

                              



                                 

                                   











                                                                     

                                         

                                       

                                           

                                              

                                              

                                                

                    

                           

                           

                            



                           
                         
                        

                           

                            

                                

                                   



                                         

                                 

                                       

                                          

                                    



                                   
                               
                     
             
                                                    
                                                  

                                                     
                                                 

                           
                            

                                           

                                       
                                

                                    

                                       

                                

                                          
                                

                                 

                                

                                

                                   

                                

                                       
                        

                                         
                                       
                                           
                                    

                          
                             

                                 


                                      

                                      

                                         
                                             
                                           

                               



                                         


                                         
                                  
                                

                                   
                                
                                     

                                
                              
                                
                              

                              
                               
                             
                             

                                    
                                     
                                       

                         
                                 

                            
                                     

                                   

                                   

                              
                                 
                              
                                              
                                                  

                                



                                   

                                    

                                  
                                     
                            

                              

                                           
                                 

                                    

                           

                                      
                                 
                               
                             
                        

                                    
                                


                                        

                         
                             
                               

                                
                                
                             

                      
                           
                          











                                               
                                          























                                              
                

                           



                              

                              

                              

                                     
                            

                                       

                         

                                

                                

                                             





                                                     

                                              
                                                  







                                                           

                                      





                           



                             



                                      

                                

                                 

                               

                                  

                                  


                                  
                                
                              

                                

                                        

                             

                                    

                           

                               

                           

                             



                               


                                     





                                


                                 

                             

                         

                               





                                 

                                         



                                      

                                      

                           

                                 

                                           



                             

                             


                             

                                     

                              

                           

                           





                                         

                              

                           

                           

                           

                                     
                                 

                           
                               

                           

                         

                           









                                             

                           

                                    

                                            

                                   
                                
                               
                              

                           

                                 

                           







                                             

                           

                                     
                                
                               

                           

                                     

                                

                           

                             

                           

                             
                           

                                                

                               

                         

                              





                                                




                                               

                                             



                                                 

                                              

                                                     



                                              

                                       
                              

                               

                                         

                                















                                                    

                                                      










                                                       
                                                

                                              

                             

                             

                             

                                    

                           

                         

                               

                           

                           



                           


                             

                                  

                         





                                   

                                  

                           



                                       



                                                      

                                        

                                

                                       

                                       

                                              

                         

                                    



                               
                                    


                                   

                                             

                             

                           

                                  
                                 
                               

                           
                                 



                                                                    














                                                             

                             

                                       

                                     

                                          






                                                  

                           



                                         



                           



                           




                                          

                                     

                                          

                  

                     

                  

                  



                  

                  

                  




                             

              

                  
                         

                

                         

                     

                       
 
 

                                       


                                                                                            
                                                                                                             
                                                                                    
     


                                       
 
                            
                               
 
                                                        
     

       
                                    
 
                                                                                                
                                                                                                                      


                                                          
 
                       
                                                                 
                                                   
       
 
            



                                                          
                                         



                               


                                       

                           
                              
     
                                                                

       
                                              
                               
                                     
                                   

                                        

                                        



                                                   

                                           



                                       
     
                                                          
       
 



                                                    



                                                             


                                                 
                                                       




                                             


                                                                 



                                                                      
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later

add_library(core STATIC
    arm/arm_interface.h
    arm/arm_interface.cpp
    arm/debug.cpp
    arm/debug.h
    arm/exclusive_monitor.cpp
    arm/exclusive_monitor.h
    arm/symbols.cpp
    arm/symbols.h
    constants.cpp
    constants.h
    core.cpp
    core.h
    core_timing.cpp
    core_timing.h
    cpu_manager.cpp
    cpu_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
    debugger/debugger_interface.h
    debugger/debugger.cpp
    debugger/debugger.h
    debugger/gdbstub_arch.cpp
    debugger/gdbstub_arch.h
    debugger/gdbstub.cpp
    debugger/gdbstub.h
    device_memory.cpp
    device_memory.h
    file_sys/fssystem/fs_i_storage.h
    file_sys/fssystem/fssystem_aes_ctr_counter_extended_storage.cpp
    file_sys/fssystem/fssystem_aes_ctr_counter_extended_storage.h
    file_sys/fssystem/fssystem_aes_ctr_storage.cpp
    file_sys/fssystem/fssystem_aes_ctr_storage.h
    file_sys/fssystem/fssystem_aes_xts_storage.cpp
    file_sys/fssystem/fssystem_aes_xts_storage.h
    file_sys/fssystem/fssystem_alignment_matching_storage.h
    file_sys/fssystem/fssystem_alignment_matching_storage_impl.cpp
    file_sys/fssystem/fssystem_alignment_matching_storage_impl.h
    file_sys/fssystem/fssystem_bucket_tree.cpp
    file_sys/fssystem/fssystem_bucket_tree.h
    file_sys/fssystem/fssystem_bucket_tree_utils.h
    file_sys/fssystem/fssystem_compressed_storage.h
    file_sys/fssystem/fssystem_compression_common.h
    file_sys/fssystem/fssystem_compression_configuration.cpp
    file_sys/fssystem/fssystem_compression_configuration.h
    file_sys/fssystem/fssystem_crypto_configuration.cpp
    file_sys/fssystem/fssystem_crypto_configuration.h
    file_sys/fssystem/fssystem_hierarchical_integrity_verification_storage.cpp
    file_sys/fssystem/fssystem_hierarchical_integrity_verification_storage.h
    file_sys/fssystem/fssystem_hierarchical_sha256_storage.cpp
    file_sys/fssystem/fssystem_hierarchical_sha256_storage.h
    file_sys/fssystem/fssystem_indirect_storage.cpp
    file_sys/fssystem/fssystem_indirect_storage.h
    file_sys/fssystem/fssystem_integrity_romfs_storage.cpp
    file_sys/fssystem/fssystem_integrity_romfs_storage.h
    file_sys/fssystem/fssystem_integrity_verification_storage.cpp
    file_sys/fssystem/fssystem_integrity_verification_storage.h
    file_sys/fssystem/fssystem_memory_resource_buffer_hold_storage.h
    file_sys/fssystem/fssystem_nca_file_system_driver.cpp
    file_sys/fssystem/fssystem_nca_file_system_driver.h
    file_sys/fssystem/fssystem_nca_header.cpp
    file_sys/fssystem/fssystem_nca_header.h
    file_sys/fssystem/fssystem_nca_reader.cpp
    file_sys/fssystem/fssystem_pooled_buffer.cpp
    file_sys/fssystem/fssystem_pooled_buffer.h
    file_sys/fssystem/fssystem_sparse_storage.cpp
    file_sys/fssystem/fssystem_sparse_storage.h
    file_sys/fssystem/fssystem_switch_storage.h
    file_sys/fssystem/fssystem_utility.cpp
    file_sys/fssystem/fssystem_utility.h
    file_sys/fssystem/fs_types.h
    file_sys/bis_factory.cpp
    file_sys/bis_factory.h
    file_sys/card_image.cpp
    file_sys/card_image.h
    file_sys/common_funcs.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/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/system_archive/time_zone_binary.cpp
    file_sys/system_archive/time_zone_binary.h
    file_sys/vfs.cpp
    file_sys/vfs.h
    file_sys/vfs_cached.cpp
    file_sys/vfs_cached.h
    file_sys/vfs_concat.cpp
    file_sys/vfs_concat.h
    file_sys/vfs_layered.cpp
    file_sys/vfs_layered.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/cabinet.cpp
    frontend/applets/cabinet.h
    frontend/applets/controller.cpp
    frontend/applets/controller.h
    frontend/applets/error.cpp
    frontend/applets/error.h
    frontend/applets/general_frontend.cpp
    frontend/applets/general_frontend.h
    frontend/applets/mii_edit.cpp
    frontend/applets/mii_edit.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/graphics_context.h
    hle/api_version.h
    hle/ipc.h
    hle/kernel/board/nintendo/nx/k_memory_layout.cpp
    hle/kernel/board/nintendo/nx/k_memory_layout.h
    hle/kernel/board/nintendo/nx/k_system_control.cpp
    hle/kernel/board/nintendo/nx/k_system_control.h
    hle/kernel/board/nintendo/nx/secure_monitor.h
    hle/kernel/code_set.cpp
    hle/kernel/code_set.h
    hle/kernel/svc_results.h
    hle/kernel/global_scheduler_context.cpp
    hle/kernel/global_scheduler_context.h
    hle/kernel/init/init_slab_setup.cpp
    hle/kernel/init/init_slab_setup.h
    hle/kernel/initial_process.h
    hle/kernel/k_address_arbiter.cpp
    hle/kernel/k_address_arbiter.h
    hle/kernel/k_address_space_info.cpp
    hle/kernel/k_address_space_info.h
    hle/kernel/k_auto_object.cpp
    hle/kernel/k_auto_object.h
    hle/kernel/k_auto_object_container.cpp
    hle/kernel/k_auto_object_container.h
    hle/kernel/k_affinity_mask.h
    hle/kernel/k_capabilities.cpp
    hle/kernel/k_capabilities.h
    hle/kernel/k_class_token.cpp
    hle/kernel/k_class_token.h
    hle/kernel/k_client_port.cpp
    hle/kernel/k_client_port.h
    hle/kernel/k_client_session.cpp
    hle/kernel/k_client_session.h
    hle/kernel/k_code_memory.cpp
    hle/kernel/k_code_memory.h
    hle/kernel/k_condition_variable.cpp
    hle/kernel/k_condition_variable.h
    hle/kernel/k_debug.h
    hle/kernel/k_device_address_space.cpp
    hle/kernel/k_device_address_space.h
    hle/kernel/k_dynamic_page_manager.h
    hle/kernel/k_dynamic_resource_manager.h
    hle/kernel/k_dynamic_slab_heap.h
    hle/kernel/k_event.cpp
    hle/kernel/k_event.h
    hle/kernel/k_event_info.h
    hle/kernel/k_handle_table.cpp
    hle/kernel/k_handle_table.h
    hle/kernel/k_hardware_timer_base.h
    hle/kernel/k_hardware_timer.cpp
    hle/kernel/k_hardware_timer.h
    hle/kernel/k_interrupt_manager.cpp
    hle/kernel/k_interrupt_manager.h
    hle/kernel/k_light_client_session.cpp
    hle/kernel/k_light_client_session.h
    hle/kernel/k_light_condition_variable.cpp
    hle/kernel/k_light_condition_variable.h
    hle/kernel/k_light_lock.cpp
    hle/kernel/k_light_lock.h
    hle/kernel/k_light_server_session.cpp
    hle/kernel/k_light_server_session.h
    hle/kernel/k_light_session.cpp
    hle/kernel/k_light_session.h
    hle/kernel/k_memory_block.h
    hle/kernel/k_memory_block_manager.cpp
    hle/kernel/k_memory_block_manager.h
    hle/kernel/k_memory_layout.cpp
    hle/kernel/k_memory_layout.h
    hle/kernel/k_memory_manager.cpp
    hle/kernel/k_memory_manager.h
    hle/kernel/k_memory_region.h
    hle/kernel/k_memory_region_type.h
    hle/kernel/k_object_name.cpp
    hle/kernel/k_object_name.h
    hle/kernel/k_page_bitmap.h
    hle/kernel/k_page_buffer.cpp
    hle/kernel/k_page_buffer.h
    hle/kernel/k_page_heap.cpp
    hle/kernel/k_page_heap.h
    hle/kernel/k_page_group.cpp
    hle/kernel/k_page_group.h
    hle/kernel/k_page_table.h
    hle/kernel/k_page_table_base.cpp
    hle/kernel/k_page_table_base.h
    hle/kernel/k_page_table_manager.h
    hle/kernel/k_page_table_slab_heap.h
    hle/kernel/k_port.cpp
    hle/kernel/k_port.h
    hle/kernel/k_priority_queue.h
    hle/kernel/k_process.cpp
    hle/kernel/k_process.h
    hle/kernel/k_process_page_table.h
    hle/kernel/k_readable_event.cpp
    hle/kernel/k_readable_event.h
    hle/kernel/k_resource_limit.cpp
    hle/kernel/k_resource_limit.h
    hle/kernel/k_scheduler.cpp
    hle/kernel/k_scheduler.h
    hle/kernel/k_scheduler_lock.h
    hle/kernel/k_scoped_lock.h
    hle/kernel/k_scoped_resource_reservation.h
    hle/kernel/k_scoped_scheduler_lock_and_sleep.h
    hle/kernel/k_server_port.cpp
    hle/kernel/k_server_port.h
    hle/kernel/k_server_session.cpp
    hle/kernel/k_server_session.h
    hle/kernel/k_session.cpp
    hle/kernel/k_session.h
    hle/kernel/k_session_request.cpp
    hle/kernel/k_session_request.h
    hle/kernel/k_shared_memory.cpp
    hle/kernel/k_shared_memory.h
    hle/kernel/k_shared_memory_info.h
    hle/kernel/k_slab_heap.h
    hle/kernel/k_spin_lock.cpp
    hle/kernel/k_spin_lock.h
    hle/kernel/k_synchronization_object.cpp
    hle/kernel/k_synchronization_object.h
    hle/kernel/k_system_control.h
    hle/kernel/k_system_resource.cpp
    hle/kernel/k_system_resource.h
    hle/kernel/k_thread.cpp
    hle/kernel/k_thread.h
    hle/kernel/k_thread_local_page.cpp
    hle/kernel/k_thread_local_page.h
    hle/kernel/k_thread_queue.cpp
    hle/kernel/k_thread_queue.h
    hle/kernel/k_timer_task.h
    hle/kernel/k_trace.h
    hle/kernel/k_transfer_memory.cpp
    hle/kernel/k_transfer_memory.h
    hle/kernel/k_typed_address.h
    hle/kernel/k_worker_task.h
    hle/kernel/k_worker_task_manager.cpp
    hle/kernel/k_worker_task_manager.h
    hle/kernel/kernel.cpp
    hle/kernel/kernel.h
    hle/kernel/memory_types.h
    hle/kernel/message_buffer.h
    hle/kernel/physical_core.cpp
    hle/kernel/physical_core.h
    hle/kernel/physical_memory.h
    hle/kernel/slab_helpers.h
    hle/kernel/svc.cpp
    hle/kernel/svc.h
    hle/kernel/svc_common.h
    hle/kernel/svc_types.h
    hle/kernel/svc/svc_activity.cpp
    hle/kernel/svc/svc_address_arbiter.cpp
    hle/kernel/svc/svc_address_translation.cpp
    hle/kernel/svc/svc_cache.cpp
    hle/kernel/svc/svc_code_memory.cpp
    hle/kernel/svc/svc_condition_variable.cpp
    hle/kernel/svc/svc_debug.cpp
    hle/kernel/svc/svc_debug_string.cpp
    hle/kernel/svc/svc_device_address_space.cpp
    hle/kernel/svc/svc_event.cpp
    hle/kernel/svc/svc_exception.cpp
    hle/kernel/svc/svc_info.cpp
    hle/kernel/svc/svc_insecure_memory.cpp
    hle/kernel/svc/svc_interrupt_event.cpp
    hle/kernel/svc/svc_io_pool.cpp
    hle/kernel/svc/svc_ipc.cpp
    hle/kernel/svc/svc_kernel_debug.cpp
    hle/kernel/svc/svc_light_ipc.cpp
    hle/kernel/svc/svc_lock.cpp
    hle/kernel/svc/svc_memory.cpp
    hle/kernel/svc/svc_physical_memory.cpp
    hle/kernel/svc/svc_port.cpp
    hle/kernel/svc/svc_power_management.cpp
    hle/kernel/svc/svc_process.cpp
    hle/kernel/svc/svc_process_memory.cpp
    hle/kernel/svc/svc_processor.cpp
    hle/kernel/svc/svc_query_memory.cpp
    hle/kernel/svc/svc_register.cpp
    hle/kernel/svc/svc_resource_limit.cpp
    hle/kernel/svc/svc_secure_monitor_call.cpp
    hle/kernel/svc/svc_session.cpp
    hle/kernel/svc/svc_shared_memory.cpp
    hle/kernel/svc/svc_synchronization.cpp
    hle/kernel/svc/svc_thread.cpp
    hle/kernel/svc/svc_thread_profiler.cpp
    hle/kernel/svc/svc_tick.cpp
    hle/kernel/svc/svc_transfer_memory.cpp
    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/async_context.cpp
    hle/service/acc/async_context.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/applet_cabinet.cpp
    hle/service/am/applets/applet_cabinet.h
    hle/service/am/applets/applet_controller.cpp
    hle/service/am/applets/applet_controller.h
    hle/service/am/applets/applet_error.cpp
    hle/service/am/applets/applet_error.h
    hle/service/am/applets/applet_general_backend.cpp
    hle/service/am/applets/applet_general_backend.h
    hle/service/am/applets/applet_mii_edit.cpp
    hle/service/am/applets/applet_mii_edit.h
    hle/service/am/applets/applet_mii_edit_types.h
    hle/service/am/applets/applet_profile_select.cpp
    hle/service/am/applets/applet_profile_select.h
    hle/service/am/applets/applet_software_keyboard.cpp
    hle/service/am/applets/applet_software_keyboard.h
    hle/service/am/applets/applet_software_keyboard_types.h
    hle/service/am/applets/applet_web_browser.cpp
    hle/service/am/applets/applet_web_browser.h
    hle/service/am/applets/applet_web_browser_types.h
    hle/service/am/applets/applets.cpp
    hle/service/am/applets/applets.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/aoc/aoc_u.cpp
    hle/service/aoc/aoc_u.h
    hle/service/apm/apm.cpp
    hle/service/apm/apm.h
    hle/service/apm/apm_controller.cpp
    hle/service/apm/apm_controller.h
    hle/service/apm/apm_interface.cpp
    hle/service/apm/apm_interface.h
    hle/service/audio/audctl.cpp
    hle/service/audio/audctl.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_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_u.cpp
    hle/service/audio/audren_u.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
    hle/service/bcat/bcat.cpp
    hle/service/bcat/bcat.h
    hle/service/bcat/bcat_module.cpp
    hle/service/bcat/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/caps/caps_a.cpp
    hle/service/caps/caps_a.h
    hle/service/caps/caps_c.cpp
    hle/service/caps/caps_c.h
    hle/service/caps/caps_manager.cpp
    hle/service/caps/caps_manager.h
    hle/service/caps/caps_result.h
    hle/service/caps/caps_sc.cpp
    hle/service/caps/caps_sc.h
    hle/service/caps/caps_ss.cpp
    hle/service/caps/caps_ss.h
    hle/service/caps/caps_su.cpp
    hle/service/caps/caps_su.h
    hle/service/caps/caps_types.h
    hle/service/caps/caps_u.cpp
    hle/service/caps/caps_u.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/friend.cpp
    hle/service/friend/friend.h
    hle/service/friend/friend_interface.cpp
    hle/service/friend/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/ectx.cpp
    hle/service/glue/ectx.h
    hle/service/glue/errors.h
    hle/service/glue/glue.cpp
    hle/service/glue/glue.h
    hle/service/glue/glue_manager.cpp
    hle/service/glue/glue_manager.h
    hle/service/glue/notif.cpp
    hle/service/glue/notif.h
    hle/service/grc/grc.cpp
    hle/service/grc/grc.h
    hle/service/hid/hid.cpp
    hle/service/hid/hid.h
    hle/service/hid/hid_debug_server.cpp
    hle/service/hid/hid_debug_server.h
    hle/service/hid/hid_server.cpp
    hle/service/hid/hid_server.h
    hle/service/hid/hid_system_server.cpp
    hle/service/hid/hid_system_server.h
    hle/service/hid/hidbus.cpp
    hle/service/hid/hidbus.h
    hle/service/hid/irs.cpp
    hle/service/hid/irs.h
    hle/service/hid/xcd.cpp
    hle/service/hid/xcd.h
    hle/service/lbl/lbl.cpp
    hle/service/lbl/lbl.h
    hle/service/ldn/lan_discovery.cpp
    hle/service/ldn/lan_discovery.h
    hle/service/ldn/ldn_results.h
    hle/service/ldn/ldn.cpp
    hle/service/ldn/ldn.h
    hle/service/ldn/ldn_types.h
    hle/service/ldr/ldr.cpp
    hle/service/ldr/ldr.h
    hle/service/lm/lm.cpp
    hle/service/lm/lm.h
    hle/service/mig/mig.cpp
    hle/service/mig/mig.h
    hle/service/mii/types/char_info.cpp
    hle/service/mii/types/char_info.h
    hle/service/mii/types/core_data.cpp
    hle/service/mii/types/core_data.h
    hle/service/mii/types/raw_data.cpp
    hle/service/mii/types/raw_data.h
    hle/service/mii/types/store_data.cpp
    hle/service/mii/types/store_data.h
    hle/service/mii/types/ver3_store_data.cpp
    hle/service/mii/types/ver3_store_data.h
    hle/service/mii/mii.cpp
    hle/service/mii/mii.h
    hle/service/mii/mii_database.cpp
    hle/service/mii/mii_database.h
    hle/service/mii/mii_database_manager.cpp
    hle/service/mii/mii_database_manager.h
    hle/service/mii/mii_manager.cpp
    hle/service/mii/mii_manager.h
    hle/service/mii/mii_result.h
    hle/service/mii/mii_types.h
    hle/service/mii/mii_util.h
    hle/service/mm/mm_u.cpp
    hle/service/mm/mm_u.h
    hle/service/mnpp/mnpp_app.cpp
    hle/service/mnpp/mnpp_app.h
    hle/service/ncm/ncm.cpp
    hle/service/ncm/ncm.h
    hle/service/nfc/common/amiibo_crypto.cpp
    hle/service/nfc/common/amiibo_crypto.h
    hle/service/nfc/common/device.cpp
    hle/service/nfc/common/device.h
    hle/service/nfc/common/device_manager.cpp
    hle/service/nfc/common/device_manager.h
    hle/service/nfc/mifare_result.h
    hle/service/nfc/mifare_types.h
    hle/service/nfc/nfc.cpp
    hle/service/nfc/nfc.h
    hle/service/nfc/nfc_interface.cpp
    hle/service/nfc/nfc_interface.h
    hle/service/nfc/nfc_result.h
    hle/service/nfc/nfc_types.h
    hle/service/nfp/nfp.cpp
    hle/service/nfp/nfp.h
    hle/service/nfp/nfp_interface.cpp
    hle/service/nfp/nfp_interface.h
    hle/service/nfp/nfp_result.h
    hle/service/nfp/nfp_types.h
    hle/service/ngc/ngc.cpp
    hle/service/ngc/ngc.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/iplatform_service_manager.cpp
    hle/service/ns/iplatform_service_manager.h
    hle/service/ns/language.cpp
    hle/service/ns/language.h
    hle/service/ns/ns.cpp
    hle/service/ns/ns.h
    hle/service/ns/pdm_qry.cpp
    hle/service/ns/pdm_qry.h
    hle/service/nvdrv/core/container.cpp
    hle/service/nvdrv/core/container.h
    hle/service/nvdrv/core/nvmap.cpp
    hle/service/nvdrv/core/nvmap.h
    hle/service/nvdrv/core/syncpoint_manager.cpp
    hle/service/nvdrv/core/syncpoint_manager.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_nvdec_common.cpp
    hle/service/nvdrv/devices/nvhost_nvdec_common.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/nvdata.h
    hle/service/nvdrv/nvdrv.cpp
    hle/service/nvdrv/nvdrv.h
    hle/service/nvdrv/nvdrv_interface.cpp
    hle/service/nvdrv/nvdrv_interface.h
    hle/service/nvdrv/nvmemp.cpp
    hle/service/nvdrv/nvmemp.h
    hle/service/nvnflinger/binder.h
    hle/service/nvnflinger/buffer_item.h
    hle/service/nvnflinger/buffer_item_consumer.cpp
    hle/service/nvnflinger/buffer_item_consumer.h
    hle/service/nvnflinger/buffer_queue_consumer.cpp
    hle/service/nvnflinger/buffer_queue_consumer.h
    hle/service/nvnflinger/buffer_queue_core.cpp
    hle/service/nvnflinger/buffer_queue_core.h
    hle/service/nvnflinger/buffer_queue_defs.h
    hle/service/nvnflinger/buffer_queue_producer.cpp
    hle/service/nvnflinger/buffer_queue_producer.h
    hle/service/nvnflinger/buffer_slot.h
    hle/service/nvnflinger/buffer_transform_flags.h
    hle/service/nvnflinger/consumer_base.cpp
    hle/service/nvnflinger/consumer_base.h
    hle/service/nvnflinger/consumer_listener.h
    hle/service/nvnflinger/fb_share_buffer_manager.cpp
    hle/service/nvnflinger/fb_share_buffer_manager.h
    hle/service/nvnflinger/graphic_buffer_producer.cpp
    hle/service/nvnflinger/graphic_buffer_producer.h
    hle/service/nvnflinger/hos_binder_driver_server.cpp
    hle/service/nvnflinger/hos_binder_driver_server.h
    hle/service/nvnflinger/nvnflinger.cpp
    hle/service/nvnflinger/nvnflinger.h
    hle/service/nvnflinger/parcel.h
    hle/service/nvnflinger/pixel_format.h
    hle/service/nvnflinger/producer_listener.h
    hle/service/nvnflinger/status.h
    hle/service/nvnflinger/ui/fence.h
    hle/service/nvnflinger/ui/graphic_buffer.cpp
    hle/service/nvnflinger/ui/graphic_buffer.h
    hle/service/nvnflinger/window.h
    hle/service/olsc/olsc.cpp
    hle/service/olsc/olsc.h
    hle/service/pcie/pcie.cpp
    hle/service/pcie/pcie.h
    hle/service/pctl/pctl.cpp
    hle/service/pctl/pctl.h
    hle/service/pctl/pctl_module.cpp
    hle/service/pctl/pctl_module.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/ptm/ptm.cpp
    hle/service/ptm/ptm.h
    hle/service/ptm/ts.cpp
    hle/service/ptm/ts.h
    hle/service/hle_ipc.cpp
    hle/service/hle_ipc.h
    hle/service/ipc_helpers.h
    hle/service/kernel_helpers.cpp
    hle/service/kernel_helpers.h
    hle/service/mutex.cpp
    hle/service/mutex.h
    hle/service/ro/ro_nro_utils.cpp
    hle/service/ro/ro_nro_utils.h
    hle/service/ro/ro_results.h
    hle/service/ro/ro_types.h
    hle/service/ro/ro.cpp
    hle/service/ro/ro.h
    hle/service/server_manager.cpp
    hle/service/server_manager.h
    hle/service/service.cpp
    hle/service/service.h
    hle/service/set/appln_settings.cpp
    hle/service/set/appln_settings.h
    hle/service/set/device_settings.cpp
    hle/service/set/device_settings.h
    hle/service/set/factory_settings_server.cpp
    hle/service/set/factory_settings_server.h
    hle/service/set/firmware_debug_settings_server.cpp
    hle/service/set/firmware_debug_settings_server.h
    hle/service/set/private_settings.cpp
    hle/service/set/private_settings.h
    hle/service/set/settings.cpp
    hle/service/set/settings.h
    hle/service/set/settings_server.cpp
    hle/service/set/settings_server.h
    hle/service/set/system_settings.cpp
    hle/service/set/system_settings.h
    hle/service/set/system_settings_server.cpp
    hle/service/set/system_settings_server.h
    hle/service/sm/sm.cpp
    hle/service/sm/sm.h
    hle/service/sm/sm_controller.cpp
    hle/service/sm/sm_controller.h
    hle/service/sockets/bsd.cpp
    hle/service/sockets/bsd.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/sockets/sockets_translate.cpp
    hle/service/sockets/sockets_translate.h
    hle/service/spl/csrng.cpp
    hle/service/spl/csrng.h
    hle/service/spl/spl.cpp
    hle/service/spl/spl.h
    hle/service/spl/spl_module.cpp
    hle/service/spl/spl_module.h
    hle/service/spl/spl_results.h
    hle/service/spl/spl_types.h
    hle/service/ssl/ssl.cpp
    hle/service/ssl/ssl.h
    hle/service/ssl/ssl_backend.h
    hle/service/time/clock_types.h
    hle/service/time/ephemeral_network_system_clock_context_writer.h
    hle/service/time/ephemeral_network_system_clock_core.h
    hle/service/time/errors.h
    hle/service/time/local_system_clock_context_writer.h
    hle/service/time/network_system_clock_context_writer.h
    hle/service/time/standard_local_system_clock_core.h
    hle/service/time/standard_network_system_clock_core.h
    hle/service/time/standard_steady_clock_core.cpp
    hle/service/time/standard_steady_clock_core.h
    hle/service/time/standard_user_system_clock_core.cpp
    hle/service/time/standard_user_system_clock_core.h
    hle/service/time/steady_clock_core.h
    hle/service/time/system_clock_context_update_callback.cpp
    hle/service/time/system_clock_context_update_callback.h
    hle/service/time/system_clock_core.cpp
    hle/service/time/system_clock_core.h
    hle/service/time/tick_based_steady_clock_core.cpp
    hle/service/time/tick_based_steady_clock_core.h
    hle/service/time/time.cpp
    hle/service/time/time.h
    hle/service/time/time_interface.cpp
    hle/service/time/time_interface.h
    hle/service/time/time_manager.cpp
    hle/service/time/time_manager.h
    hle/service/time/time_sharedmemory.cpp
    hle/service/time/time_sharedmemory.h
    hle/service/time/time_zone_content_manager.cpp
    hle/service/time/time_zone_content_manager.h
    hle/service/time/time_zone_manager.cpp
    hle/service/time/time_zone_manager.h
    hle/service/time/time_zone_service.cpp
    hle/service/time/time_zone_service.h
    hle/service/time/time_zone_types.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
    internal_network/network.cpp
    internal_network/network.h
    internal_network/network_interface.cpp
    internal_network/network_interface.h
    internal_network/sockets.h
    internal_network/socket_proxy.cpp
    internal_network/socket_proxy.h
    loader/deconstructed_rom_directory.cpp
    loader/deconstructed_rom_directory.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
    perf_stats.cpp
    perf_stats.h
    precompiled_headers.h
    reporter.cpp
    reporter.h
    telemetry_session.cpp
    telemetry_session.h
    tools/freezer.cpp
    tools/freezer.h
    tools/renderdoc.cpp
    tools/renderdoc.h
)

if (MSVC)
    target_compile_options(core PRIVATE
        /we4242 # 'identifier': conversion from 'type1' to 'type2', possible loss of data
        /we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data
        /we4245 # 'conversion': conversion from 'type1' to 'type2', signed/unsigned mismatch
        /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data
        /we4800 # Implicit conversion from 'type' to bool. Possible information loss
    )
else()
    target_compile_options(core PRIVATE
        -Werror=conversion

        -Wno-sign-conversion
        -Wno-cast-function-type

        $<$<CXX_COMPILER_ID:Clang>:-fsized-deallocation>
    )
endif()

create_target_directory_groups(core)

target_link_libraries(core PUBLIC common PRIVATE audio_core hid_core network video_core nx_tzdb)
target_link_libraries(core PUBLIC Boost::headers PRIVATE fmt::fmt nlohmann_json::nlohmann_json mbedtls RenderDoc::API)
if (MINGW)
    target_link_libraries(core PRIVATE ${MSWSOCK_LIBRARY})
endif()

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

if (HAS_NCE)
    enable_language(C ASM)
    set(CMAKE_ASM_FLAGS "${CFLAGS} -x assembler-with-cpp")

    target_sources(core PRIVATE
        arm/nce/arm_nce_asm_definitions.h
        arm/nce/arm_nce.cpp
        arm/nce/arm_nce.h
        arm/nce/arm_nce.s
        arm/nce/guest_context.h
        arm/nce/instructions.h
        arm/nce/interpreter_visitor.cpp
        arm/nce/interpreter_visitor.h
        arm/nce/patcher.cpp
        arm/nce/patcher.h
        arm/nce/visitor_base.h
    )
    target_link_libraries(core PRIVATE merry::mcl merry::oaknut)
endif()

if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64)
    target_sources(core PRIVATE
        arm/dynarmic/arm_dynarmic.cpp
        arm/dynarmic/arm_dynarmic.h
        arm/dynarmic/arm_dynarmic_64.cpp
        arm/dynarmic/arm_dynarmic_64.h
        arm/dynarmic/arm_dynarmic_32.cpp
        arm/dynarmic/arm_dynarmic_32.h
        arm/dynarmic/dynarmic_cp15.cpp
        arm/dynarmic/dynarmic_cp15.h
        arm/dynarmic/dynarmic_exclusive_monitor.cpp
        arm/dynarmic/dynarmic_exclusive_monitor.h
        hle/service/jit/jit_code_memory.cpp
        hle/service/jit/jit_code_memory.h
        hle/service/jit/jit_context.cpp
        hle/service/jit/jit_context.h
        hle/service/jit/jit.cpp
        hle/service/jit/jit.h
    )
    target_link_libraries(core PRIVATE dynarmic::dynarmic)
endif()

if(ENABLE_OPENSSL)
    target_sources(core PRIVATE
        hle/service/ssl/ssl_backend_openssl.cpp)
    target_link_libraries(core PRIVATE OpenSSL::SSL)
elseif (APPLE)
    target_sources(core PRIVATE
        hle/service/ssl/ssl_backend_securetransport.cpp)
    target_link_libraries(core PRIVATE "-framework Security")
elseif (WIN32)
    target_sources(core PRIVATE
        hle/service/ssl/ssl_backend_schannel.cpp)
    target_link_libraries(core PRIVATE crypt32 secur32)
else()
    target_sources(core PRIVATE
        hle/service/ssl/ssl_backend_none.cpp)
endif()

if (YUZU_USE_PRECOMPILED_HEADERS)
    target_precompile_headers(core PRIVATE precompiled_headers.h)
endif()

if (YUZU_ENABLE_LTO)
  set_property(TARGET core PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
endif()