xref: /aosp_15_r20/external/swiftshader/src/System/CMakeLists.txt (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1*03ce13f7SAndroid Build Coastguard Worker# Copyright 2020 The SwiftShader Authors. All Rights Reserved.
2*03ce13f7SAndroid Build Coastguard Worker#
3*03ce13f7SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*03ce13f7SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*03ce13f7SAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*03ce13f7SAndroid Build Coastguard Worker#
7*03ce13f7SAndroid Build Coastguard Worker#    http://www.apache.org/licenses/LICENSE-2.0
8*03ce13f7SAndroid Build Coastguard Worker#
9*03ce13f7SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*03ce13f7SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*03ce13f7SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*03ce13f7SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*03ce13f7SAndroid Build Coastguard Worker# limitations under the License.
14*03ce13f7SAndroid Build Coastguard Worker
15*03ce13f7SAndroid Build Coastguard Workerset(ROOT_PROJECT_COMPILE_OPTIONS
16*03ce13f7SAndroid Build Coastguard Worker    ${SWIFTSHADER_COMPILE_OPTIONS}
17*03ce13f7SAndroid Build Coastguard Worker    ${WARNINGS_AS_ERRORS}
18*03ce13f7SAndroid Build Coastguard Worker)
19*03ce13f7SAndroid Build Coastguard Worker
20*03ce13f7SAndroid Build Coastguard Workerset(SYSTEM_SRC_FILES
21*03ce13f7SAndroid Build Coastguard Worker    Build.cpp
22*03ce13f7SAndroid Build Coastguard Worker    Build.hpp
23*03ce13f7SAndroid Build Coastguard Worker    Configurator.cpp
24*03ce13f7SAndroid Build Coastguard Worker    Configurator.hpp
25*03ce13f7SAndroid Build Coastguard Worker    CPUID.cpp
26*03ce13f7SAndroid Build Coastguard Worker    CPUID.hpp
27*03ce13f7SAndroid Build Coastguard Worker    Debug.cpp
28*03ce13f7SAndroid Build Coastguard Worker    Debug.hpp
29*03ce13f7SAndroid Build Coastguard Worker    Half.cpp
30*03ce13f7SAndroid Build Coastguard Worker    Half.hpp
31*03ce13f7SAndroid Build Coastguard Worker    LRUCache.hpp
32*03ce13f7SAndroid Build Coastguard Worker    Math.cpp
33*03ce13f7SAndroid Build Coastguard Worker    Math.hpp
34*03ce13f7SAndroid Build Coastguard Worker    Memory.cpp
35*03ce13f7SAndroid Build Coastguard Worker    Memory.hpp
36*03ce13f7SAndroid Build Coastguard Worker    SharedLibrary.hpp
37*03ce13f7SAndroid Build Coastguard Worker    Socket.cpp
38*03ce13f7SAndroid Build Coastguard Worker    Socket.hpp
39*03ce13f7SAndroid Build Coastguard Worker    Synchronization.hpp
40*03ce13f7SAndroid Build Coastguard Worker    SwiftConfig.cpp
41*03ce13f7SAndroid Build Coastguard Worker    SwiftConfig.hpp
42*03ce13f7SAndroid Build Coastguard Worker    Timer.cpp
43*03ce13f7SAndroid Build Coastguard Worker    Timer.hpp
44*03ce13f7SAndroid Build Coastguard Worker    Types.hpp
45*03ce13f7SAndroid Build Coastguard Worker)
46*03ce13f7SAndroid Build Coastguard Worker
47*03ce13f7SAndroid Build Coastguard Workerif(LINUX OR ANDROID)
48*03ce13f7SAndroid Build Coastguard Worker    list(APPEND SYSTEM_SRC_FILES
49*03ce13f7SAndroid Build Coastguard Worker        Linux/MemFd.cpp
50*03ce13f7SAndroid Build Coastguard Worker        Linux/MemFd.hpp
51*03ce13f7SAndroid Build Coastguard Worker    )
52*03ce13f7SAndroid Build Coastguard Workerendif()
53*03ce13f7SAndroid Build Coastguard Worker
54*03ce13f7SAndroid Build Coastguard Workerset(SYSTEM_COMPILE_OPTIONS "")
55*03ce13f7SAndroid Build Coastguard Workerif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
56*03ce13f7SAndroid Build Coastguard Worker    list(APPEND SYSTEM_COMPILE_OPTIONS
57*03ce13f7SAndroid Build Coastguard Worker        "-Wexit-time-destructors"  # declaration requires an exit-time destructor
58*03ce13f7SAndroid Build Coastguard Worker    )
59*03ce13f7SAndroid Build Coastguard Worker    # We use exit-time destructors for the global configuration.
60*03ce13f7SAndroid Build Coastguard Worker    SET_SOURCE_FILES_PROPERTIES("SwiftConfig.cpp" PROPERTIES COMPILE_FLAGS "-Wno-exit-time-destructors")
61*03ce13f7SAndroid Build Coastguard Workerendif()
62*03ce13f7SAndroid Build Coastguard Worker
63*03ce13f7SAndroid Build Coastguard Workeradd_library(vk_system EXCLUDE_FROM_ALL
64*03ce13f7SAndroid Build Coastguard Worker    ${SYSTEM_SRC_FILES}
65*03ce13f7SAndroid Build Coastguard Worker)
66*03ce13f7SAndroid Build Coastguard Worker
67*03ce13f7SAndroid Build Coastguard Workerset_target_properties(vk_system PROPERTIES
68*03ce13f7SAndroid Build Coastguard Worker    POSITION_INDEPENDENT_CODE 1
69*03ce13f7SAndroid Build Coastguard Worker    FOLDER "SwiftShader VK"
70*03ce13f7SAndroid Build Coastguard Worker)
71*03ce13f7SAndroid Build Coastguard Worker
72*03ce13f7SAndroid Build Coastguard Workertarget_include_directories(vk_system
73*03ce13f7SAndroid Build Coastguard Worker    PUBLIC
74*03ce13f7SAndroid Build Coastguard Worker        ".."
75*03ce13f7SAndroid Build Coastguard Worker)
76*03ce13f7SAndroid Build Coastguard Worker
77*03ce13f7SAndroid Build Coastguard Workertarget_compile_options(vk_system
78*03ce13f7SAndroid Build Coastguard Worker    PRIVATE
79*03ce13f7SAndroid Build Coastguard Worker        ${ROOT_PROJECT_COMPILE_OPTIONS}
80*03ce13f7SAndroid Build Coastguard Worker        ${SYSTEM_COMPILE_OPTIONS}
81*03ce13f7SAndroid Build Coastguard Worker)
82*03ce13f7SAndroid Build Coastguard Worker
83*03ce13f7SAndroid Build Coastguard Workertarget_link_libraries(vk_system
84*03ce13f7SAndroid Build Coastguard Worker    PUBLIC
85*03ce13f7SAndroid Build Coastguard Worker        marl
86*03ce13f7SAndroid Build Coastguard Worker)
87*03ce13f7SAndroid Build Coastguard Worker
88*03ce13f7SAndroid Build Coastguard Workertarget_link_options(vk_system
89*03ce13f7SAndroid Build Coastguard Worker    PUBLIC
90*03ce13f7SAndroid Build Coastguard Worker        ${SWIFTSHADER_LINK_FLAGS}
91*03ce13f7SAndroid Build Coastguard Worker)
92