|  | # Copyright 2020 The SwiftShader Authors. All Rights Reserved. | 
|  | # | 
|  | # Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | # you may not use this file except in compliance with the License. | 
|  | # You may obtain a copy of the License at | 
|  | # | 
|  | #    http://www.apache.org/licenses/LICENSE-2.0 | 
|  | # | 
|  | # Unless required by applicable law or agreed to in writing, software | 
|  | # distributed under the License is distributed on an "AS IS" BASIS, | 
|  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | # See the License for the specific language governing permissions and | 
|  | # limitations under the License. | 
|  |  | 
|  | set(ROOT_PROJECT_COMPILE_OPTIONS | 
|  | ${SWIFTSHADER_COMPILE_OPTIONS} | 
|  | ${WARNINGS_AS_ERRORS} | 
|  | ) | 
|  |  | 
|  | set(SYSTEM_SRC_FILES | 
|  | Build.cpp | 
|  | Build.hpp | 
|  | Configurator.cpp | 
|  | Configurator.hpp | 
|  | CPUID.cpp | 
|  | CPUID.hpp | 
|  | Debug.cpp | 
|  | Debug.hpp | 
|  | Half.cpp | 
|  | Half.hpp | 
|  | LRUCache.hpp | 
|  | Math.cpp | 
|  | Math.hpp | 
|  | Memory.cpp | 
|  | Memory.hpp | 
|  | SharedLibrary.hpp | 
|  | Socket.cpp | 
|  | Socket.hpp | 
|  | Synchronization.hpp | 
|  | SwiftConfig.cpp | 
|  | SwiftConfig.hpp | 
|  | Timer.cpp | 
|  | Timer.hpp | 
|  | Types.hpp | 
|  | ) | 
|  |  | 
|  | if(LINUX OR ANDROID) | 
|  | list(APPEND SYSTEM_SRC_FILES | 
|  | Linux/MemFd.cpp | 
|  | Linux/MemFd.hpp | 
|  | ) | 
|  | endif() | 
|  |  | 
|  | set(SYSTEM_COMPILE_OPTIONS "") | 
|  | if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") | 
|  | list(APPEND SYSTEM_COMPILE_OPTIONS | 
|  | "-Wexit-time-destructors"  # declaration requires an exit-time destructor | 
|  | ) | 
|  | # We use exit-time destructors for the global configuration. | 
|  | SET_SOURCE_FILES_PROPERTIES("SwiftConfig.cpp" PROPERTIES COMPILE_FLAGS "-Wno-exit-time-destructors") | 
|  | endif() | 
|  |  | 
|  | add_library(vk_system EXCLUDE_FROM_ALL | 
|  | ${SYSTEM_SRC_FILES} | 
|  | ) | 
|  |  | 
|  | set_target_properties(vk_system PROPERTIES | 
|  | POSITION_INDEPENDENT_CODE 1 | 
|  | FOLDER "SwiftShader VK" | 
|  | ) | 
|  |  | 
|  | target_include_directories(vk_system | 
|  | PUBLIC | 
|  | ".." | 
|  | ) | 
|  |  | 
|  | target_compile_options(vk_system | 
|  | PRIVATE | 
|  | ${ROOT_PROJECT_COMPILE_OPTIONS} | 
|  | ${SYSTEM_COMPILE_OPTIONS} | 
|  | ) | 
|  |  | 
|  | target_link_libraries(vk_system | 
|  | PUBLIC | 
|  | marl | 
|  | ) | 
|  |  | 
|  | target_link_options(vk_system | 
|  | PUBLIC | 
|  | ${SWIFTSHADER_LINK_FLAGS} | 
|  | ) |