blob: 0589d0d1aac14877f02428fd73f42e9c9725f8d8 [file] [log] [blame]
Nicolas Capensf554c542020-01-09 17:19:35 +00001cmake_minimum_required(VERSION 3.6.3)
Corentin Wallez0866b292015-12-09 13:49:40 -05002
Ben Clayton3cc0aea2020-01-08 19:09:25 +00003set(CMAKE_CXX_STANDARD 14)
4
Ben Clayton30b6b592019-08-07 15:04:11 +01005project(SwiftShader C CXX ASM)
Corentin Wallez0866b292015-12-09 13:49:40 -05006
Nicolas Capens4c9f04b2019-01-31 22:09:03 -05007# On Windows we use custom solution and project files, except for certain third-
8# party projects which use CMake-generated ones. They are manually (re)generated
9# and made path relative using build/cmake.sh, so they can be checked into the
10# repository. Therefore they should not be auto-regenerated and left using
11# absolute paths by CMake's ZERO_CHECK.
12if(WIN32)
13 # Disable automatically regenerating project files on CMakeLists.txt changes.
14 set(CMAKE_SUPPRESS_REGENERATION true)
15endif()
16
Corentin Wallez0866b292015-12-09 13:49:40 -050017###########################################################
18# Detect system
19###########################################################
20
Nicolas Capens6f422092015-12-23 15:12:45 -050021if(CMAKE_SYSTEM_NAME MATCHES "Linux")
Corentin Wallez0866b292015-12-09 13:49:40 -050022 set(LINUX ON)
Stephen Whitee6ab01f2019-04-04 14:31:25 -040023elseif(CMAKE_SYSTEM_NAME MATCHES "Android")
24 set(ANDROID ON)
25 set(CMAKE_CXX_FLAGS "-DANDROID_NDK_BUILD")
Corentin Wallez0866b292015-12-09 13:49:40 -050026elseif(WIN32)
27elseif(APPLE)
28else()
29 message(FATAL_ERROR "Platform is not supported")
30endif()
31
Nicolas Capens30cd7d42017-04-25 15:17:25 -040032if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR CMAKE_SYSTEM_PROCESSOR MATCHES "aarch")
33 if(CMAKE_SIZEOF_VOID_P EQUAL 8)
34 set(ARCH "aarch64")
35 else()
36 set(ARCH "arm")
37 endif()
Gordana Cmiljanovic082dfec2018-10-19 11:36:15 +020038elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips*")
39 if(CMAKE_SIZEOF_VOID_P EQUAL 8)
40 set(ARCH "mips64el")
41 else()
42 set(ARCH "mipsel")
43 endif()
Colin Samplesf63a3ab2019-06-13 12:53:09 -040044elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc*")
45 if(CMAKE_SIZEOF_VOID_P EQUAL 8)
46 set(ARCH "ppc64le")
47 else()
48 message(FATAL_ERROR "Architecture is not supported")
49 endif()
Corentin Wallez0866b292015-12-09 13:49:40 -050050else()
Nicolas Capens30cd7d42017-04-25 15:17:25 -040051 if(CMAKE_SIZEOF_VOID_P EQUAL 8)
52 set(ARCH "x86_64")
53 else()
54 set(ARCH "x86")
55 endif()
Corentin Wallez0866b292015-12-09 13:49:40 -050056endif()
57
Nicolas Capens007c6c52017-06-09 11:21:48 -040058set(CMAKE_MACOSX_RPATH ON)
59
Nicolas Capensd7a21cc2018-09-11 13:09:28 -040060if ((CMAKE_GENERATOR MATCHES "Visual Studio") AND (CMAKE_GENERATOR_TOOLSET STREQUAL ""))
61 message(WARNING "Visual Studio generators use the x86 host compiler by "
62 "default, even for 64-bit targets. This can result in linker "
63 "instability and out of memory errors. To use the 64-bit "
64 "host compiler, pass -Thost=x64 on the CMake command line.")
65endif()
66
Ben Clayton4901ffd2019-06-27 10:39:07 +010067# Use CCache if available
68find_program(CCACHE_FOUND ccache)
69if(CCACHE_FOUND)
70 message(STATUS "Using ccache")
71 set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
72 set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
Ben Clayton1e8486b2020-01-22 17:01:52 +000073endif()
Ben Clayton4901ffd2019-06-27 10:39:07 +010074
Corentin Wallez0866b292015-12-09 13:49:40 -050075###########################################################
Ben Claytona9af8832019-08-14 13:09:43 +010076# Host libraries
77###########################################################
78
79find_library(X11 X11)
80find_library(XCB xcb)
81
82###########################################################
Nicolas Capens18b8d682017-07-25 15:31:45 -040083# Options
84###########################################################
85
86if(NOT CMAKE_BUILD_TYPE)
87 set(CMAKE_BUILD_TYPE "Release" CACHE STRING "The type of build: Debug Release MinSizeRel RelWithDebInfo." FORCE)
88endif()
89set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release MinSizeRel RelWithDebInfo)
90
Ben Clayton5837d872020-01-20 16:23:36 +000091function (option_if_not_defined name description default)
92 if(NOT DEFINED ${name})
93 option(${name} ${description} ${default})
94 endif()
95endfunction()
Nicolas Capens18b8d682017-07-25 15:31:45 -040096
Ben Clayton9cc163c2020-01-20 16:26:36 +000097function (set_if_not_defined name value)
98 if(NOT DEFINED ${name})
99 set(${name} ${value} PARENT_SCOPE)
100 endif()
101endfunction()
102
Ben Clayton5837d872020-01-20 16:23:36 +0000103option_if_not_defined(SWIFTSHADER_BUILD_EGL "Build the EGL library" 1)
104option_if_not_defined(SWIFTSHADER_BUILD_GLESv2 "Build the OpenGL ES 2 library" 1)
105option_if_not_defined(SWIFTSHADER_BUILD_GLES_CM "Build the OpenGL ES 1.1 library" 1)
106option_if_not_defined(SWIFTSHADER_BUILD_VULKAN "Build the Vulkan library" 1)
107option_if_not_defined(SWIFTSHADER_BUILD_PVR "Fetch and build the PowerVR examples" 0)
Nicolas Capens18b8d682017-07-25 15:31:45 -0400108
Ben Clayton5837d872020-01-20 16:23:36 +0000109option_if_not_defined(SWIFTSHADER_USE_GROUP_SOURCES "Group the source files in a folder tree for Visual Studio" 1)
Nicolas Capens18b8d682017-07-25 15:31:45 -0400110
Ben Clayton5837d872020-01-20 16:23:36 +0000111option_if_not_defined(SWIFTSHADER_BUILD_SAMPLES "Build sample programs" 1)
112option_if_not_defined(SWIFTSHADER_BUILD_TESTS "Build test programs" 1)
Ben Clayton55890e12020-01-31 14:07:21 +0000113option_if_not_defined(SWIFTSHADER_BUILD_BENCHMARKS "Build benchmarks" 0)
Ben Clayton5837d872020-01-20 16:23:36 +0000114
115option_if_not_defined(SWIFTSHADER_MSAN "Build with memory sanitizer" 0)
116option_if_not_defined(SWIFTSHADER_ASAN "Build with address sanitizer" 0)
117option_if_not_defined(SWIFTSHADER_TSAN "Build with thread sanitizer" 0)
118option_if_not_defined(SWIFTSHADER_UBSAN "Build with undefined behavior sanitizer" 0)
119option_if_not_defined(SWIFTSHADER_WARNINGS_AS_ERRORS "Treat all warnings as errors" 1)
120option_if_not_defined(SWIFTSHADER_DCHECK_ALWAYS_ON "Check validation macros even in release builds" 0)
121option_if_not_defined(REACTOR_EMIT_DEBUG_INFO "Emit debug info for JIT functions" 0)
122option_if_not_defined(REACTOR_EMIT_PRINT_LOCATION "Emit printing of location info for JIT functions" 0)
Antonio Maiorano415d1812020-02-11 16:22:55 -0500123option_if_not_defined(REACTOR_ENABLE_PRINT "Enable RR_PRINT macros" 0)
Ben Clayton5837d872020-01-20 16:23:36 +0000124option_if_not_defined(REACTOR_VERIFY_LLVM_IR "Check reactor-generated LLVM IR is valid even in release builds" 0)
125option_if_not_defined(SWIFTSHADER_LESS_DEBUG_INFO "Generate less debug info to reduce file size" 0)
Nicolas Capensa4347a92020-03-01 08:29:25 -0500126option_if_not_defined(SWIFTSHADER_ENABLE_VULKAN_DEBUGGER "Enable Vulkan debugger support" 0)
127option_if_not_defined(SWIFTSHADER_ENABLE_ASTC "Enable ASTC compressed textures support" 1) # TODO(b/150130101)
Nicolas Capensbf8fd5b2018-06-21 00:42:00 -0400128
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500129set(BUILD_MARL ${SWIFTSHADER_BUILD_VULKAN})
Ben Clayton5e4d55f2019-12-10 19:40:58 +0000130
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500131if(${SWIFTSHADER_BUILD_VULKAN} AND ${SWIFTSHADER_ENABLE_VULKAN_DEBUGGER})
Ben Clayton9cc163c2020-01-20 16:26:36 +0000132 set_if_not_defined(SWIFTSHADER_BUILD_CPPDAP 1)
Ben Clayton5e4d55f2019-12-10 19:40:58 +0000133else()
Ben Clayton9cc163c2020-01-20 16:26:36 +0000134 set_if_not_defined(SWIFTSHADER_BUILD_CPPDAP 0)
Ben Clayton5e4d55f2019-12-10 19:40:58 +0000135endif()
Ben Claytone693b622019-09-05 12:48:37 +0100136
Nicolas Capens5f8a16a2019-08-15 10:36:13 -0400137set(DEFAULT_REACTOR_BACKEND "LLVM")
Nicolas Capens18b8d682017-07-25 15:31:45 -0400138
Nicolas Capens3957b7f2018-10-15 12:54:41 -0400139set(REACTOR_BACKEND ${DEFAULT_REACTOR_BACKEND} CACHE STRING "JIT compiler back-end used by Reactor")
Nicolas Capens18b8d682017-07-25 15:31:45 -0400140set_property(CACHE REACTOR_BACKEND PROPERTY STRINGS LLVM Subzero)
141
Antonio Maiorano062dc182019-12-09 11:52:31 -0500142# If defined, overrides the default optimization level of the current reactor backend.
143# Set to one of the rr::Optimization::Level enum values.
144set(REACTOR_DEFAULT_OPT_LEVEL "Default" CACHE STRING "Reactor default optimization level")
145set_property(CACHE REACTOR_DEFAULT_OPT_LEVEL PROPERTY STRINGS "None" "Less" "Default" "Aggressive")
146
Nicolas Capens18b8d682017-07-25 15:31:45 -0400147# LLVM disallows calling cmake . from the main LLVM dir, the reason is that
148# it builds header files that could overwrite the orignal ones. Here we
149# want to include LLVM as a subdirectory and even though it wouldn't cause
150# the problem, if cmake . is called from the main dir, the condition that
Erwin Jansend46faeb2018-11-19 16:01:37 -0800151# LLVM checkes, "CMAKE_CURRENT_SOURCE_DIR == CMAKE_CURRENT_BINARY_DIR" will be true. So we
Nicolas Capens18b8d682017-07-25 15:31:45 -0400152# disallow it ourselves too to. In addition if there are remining CMakeFiles
153# and CMakeCache in the directory, cmake .. from a subdirectory will still
154# try to build from the main directory so we instruct users to delete these
155# files when they get the error.
Erwin Jansend46faeb2018-11-19 16:01:37 -0800156if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
Nicolas Capens18b8d682017-07-25 15:31:45 -0400157 message(FATAL_ERROR "In source builds are not allowed by LLVM, please create a build/ directory and build from there. You may have to delete the CMakeCache.txt file and CMakeFiles directory that are next to the CMakeLists.txt.")
158endif()
159
160set_property(GLOBAL PROPERTY USE_FOLDERS ON)
161
162###########################################################
Nicolas Capensfe5861b2018-08-03 16:01:48 -0400163# Initialize submodules
164###########################################################
165
Ben Clayton55890e12020-01-31 14:07:21 +0000166if (SWIFTSHADER_BUILD_TESTS)
167 if (NOT TARGET gtest)
168 if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest/.git)
169 message(WARNING "
170 third_party/googletest submodule missing.
171 Running 'git submodule update --init' to download it:
172 ")
Nicolas Capensfe5861b2018-08-03 16:01:48 -0400173
Ben Clayton55890e12020-01-31 14:07:21 +0000174 execute_process(COMMAND git submodule update --init ${CMAKE_CURRENT_SOURCE_DIR}/third_party/googletest)
175 endif()
Dan Sinclair6480d4e2019-03-11 10:48:19 -0400176 endif()
Nicolas Capensfe5861b2018-08-03 16:01:48 -0400177endif()
178
Ben Clayton55890e12020-01-31 14:07:21 +0000179if(SWIFTSHADER_BUILD_BENCHMARKS)
180 if (NOT TARGET benchmark::benchmark)
181 if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/benchmark/.git)
182 message(WARNING "
183 third_party/benchmark submodule missing.
184 Running 'git submodule update --init' to download it:
185 ")
186
187 execute_process(COMMAND git submodule update --init ${CMAKE_CURRENT_SOURCE_DIR}/third_party/benchmark)
188 endif()
189 endif()
190endif(SWIFTSHADER_BUILD_BENCHMARKS)
191
Ben Clayton755467c2019-03-23 11:57:02 +0000192if (NOT TARGET libbacktrace)
193 if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libbacktrace/src/.git)
194 message(WARNING "
195 third_party/libbacktrace/src submodule missing.
196 Running 'git submodule update --init' to download it:
197 ")
198
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500199 execute_process(COMMAND git submodule update --init ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libbacktrace)
Ben Clayton755467c2019-03-23 11:57:02 +0000200 endif()
201endif()
202
Antonio Maiorano8b321d12019-05-27 16:15:34 -0400203# Boost is downloaded if necessary
204
205# From https://www.boost.org/users/download/
206set(BOOST_VER 1.70.0)
207set(BOOST_HASH_TARGZ "882b48708d211a5f48e60b0124cf5863c1534cd544ecd0664bb534a4b5d506e9")
208set(BOOST_HASH_ZIP "48f379b2e90dd1084429aae87d6bdbde9670139fa7569ee856c8c86dd366039d")
209
210string(REPLACE "." "_" BOOST_VER_FNAME ${BOOST_VER})
211set(BOOST_THIRD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/boost_${BOOST_VER_FNAME})
212
213function(DownloadBoost)
214 if (LINUX)
215 set(BOOST_EXT "tar.gz")
216 set(BOOST_HASH ${BOOST_HASH_TARGZ})
217 else()
218 set(BOOST_EXT "zip")
219 set(BOOST_HASH ${BOOST_HASH_ZIP})
220 endif()
221
222 # Note: bintray.com has rate limiting, so use the sourceforge mirror
223 # set(BOOST_URL https://dl.bintray.com/boostorg/release/${BOOST_VER}/source/boost_${BOOST_VER_FNAME}.${BOOST_EXT})
224 set(BOOST_URL https://iweb.dl.sourceforge.net/project/boost/boost/${BOOST_VER}/boost_${BOOST_VER_FNAME}.${BOOST_EXT})
225
226 if (NOT TARGET Boost::boost)
227 if(NOT EXISTS ${BOOST_THIRD_PARTY_DIR})
228 message(WARNING "
229 third_party/boost is missing.
230 Downloading and extracting boost:
231 ")
232
233 set(BOOST_ARCHIVE ${CMAKE_BINARY_DIR}/temp/boost_archive)
234 message(STATUS "Downloading ${BOOST_URL} to ${BOOST_ARCHIVE}...")
235 file(DOWNLOAD ${BOOST_URL} ${BOOST_ARCHIVE} EXPECTED_HASH SHA256=${BOOST_HASH})
236 message(STATUS "Extracting ${BOOST_ARCHIVE} to ${BOOST_THIRD_PARTY_DIR}...")
237 execute_process(
238 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/third_party
239 COMMAND cmake -E tar xf ${BOOST_ARCHIVE}
240 )
241 endif()
242 endif()
243endfunction()
244
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500245if (SWIFTSHADER_BUILD_PVR)
246 if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/PowerVR_Examples/.git)
247 message(WARNING "
248 third_party/PowerVR_Examples submodule missing.
249 Running 'git submodule update --init' to download it:
250 ")
251
252 execute_process(COMMAND git submodule update --init ${CMAKE_CURRENT_SOURCE_DIR}/third_party/PowerVR_Examples)
253 endif()
254 set(PVR_BUILD_EXAMPLES ON CACHE BOOL "Build the PowerVR SDK Examples" FORCE)
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500255endif()
256
Nicolas Capensfe5861b2018-08-03 16:01:48 -0400257###########################################################
Corentin Wallez0866b292015-12-09 13:49:40 -0500258# Convenience macros
259###########################################################
260
261# Recursively calls source_group on the files of the directory
262# so that Visual Studio has the files in a folder tree
263macro(group_all_sources directory)
Erwin Jansend46faeb2018-11-19 16:01:37 -0800264 file(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${directory} ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/*)
Corentin Wallez0866b292015-12-09 13:49:40 -0500265 foreach(file ${files})
Erwin Jansend46faeb2018-11-19 16:01:37 -0800266 if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/${file})
Corentin Wallez0866b292015-12-09 13:49:40 -0500267 group_all_sources(${directory}/${file})
268 else()
269 string(REPLACE "/" "\\" groupname ${directory})
Erwin Jansend46faeb2018-11-19 16:01:37 -0800270 source_group(${groupname} FILES ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/${file})
Corentin Wallez0866b292015-12-09 13:49:40 -0500271 endif()
272 endforeach()
273endmacro()
274
275# Takes target library and a directory where the export map is
276# and add the linker options so that only the API symbols are
277# exported.
Nicolas Capens499bb762018-06-29 13:30:57 -0400278macro(set_shared_library_export_map TARGET DIR)
Corentin Wallez0866b292015-12-09 13:49:40 -0500279 if(MSVC)
Nicolas Capens499bb762018-06-29 13:30:57 -0400280 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " /DEF:\"${DIR}/${TARGET}.def\"")
Ben Clayton8565e772019-06-10 11:58:37 +0100281 elseif(APPLE)
282 # The exported symbols list only exports the API functions and
283 # hides all the others.
284 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS "-exported_symbols_list ${DIR}/${TARGET}.exports")
285 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_DEPENDS "${DIR}/${TARGET}.exports;")
286 # Don't allow undefined symbols, unless it's a Sanitizer build.
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500287 if(NOT SWIFTSHADER_MSAN AND NOT SWIFTSHADER_ASAN AND NOT SWIFTSHADER_TSAN AND NOT SWIFTSHADER_UBSAN)
Ben Clayton8565e772019-06-10 11:58:37 +0100288 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-undefined,error")
289 endif()
Corentin Wallez27654c22015-12-09 15:22:08 -0500290 elseif(LINUX)
Corentin Wallez0866b292015-12-09 13:49:40 -0500291 # The version script only exports the API functions and
Nicolas Capens499bb762018-06-29 13:30:57 -0400292 # hides all the others.
293 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--version-script=${DIR}/${TARGET}.lds")
294 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_DEPENDS "${DIR}/${TARGET}.lds;")
Nicolas Capensbf8fd5b2018-06-21 00:42:00 -0400295
Nicolas Capense3621dc2020-02-25 22:45:42 -0500296 # -Bsymbolic binds symbol references to their global definitions within
297 # a shared object, thereby preventing symbol preemption.
James Price126720b2020-03-03 10:20:00 -0500298 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-Bsymbolic")
Nicolas Capens517a57f2018-06-29 13:30:57 -0400299
Gordana Cmiljanovic20622c02018-11-05 15:00:11 +0100300 if(ARCH STREQUAL "mipsel" OR ARCH STREQUAL "mips64el")
Gordana Cmiljanovic082dfec2018-10-19 11:36:15 +0200301 # MIPS supports sysv hash-style only.
302 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--hash-style=sysv")
303 else()
304 # Both hash-style are needed, because we want both gold and
305 # GNU ld to be able to read our libraries.
306 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--hash-style=both")
307 endif()
Nicolas Capens499bb762018-06-29 13:30:57 -0400308
309 # Gc sections is used in combination with each functions being
310 # in its own section, to reduce the binary size.
311 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--gc-sections")
312
313 # Don't allow undefined symbols, unless it's a Sanitizer build.
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500314 if(NOT SWIFTSHADER_MSAN AND NOT SWIFTSHADER_ASAN AND NOT SWIFTSHADER_TSAN AND NOT SWIFTSHADER_UBSAN)
Nicolas Capensbf8fd5b2018-06-21 00:42:00 -0400315 set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--no-undefined")
316 endif()
Corentin Wallez0866b292015-12-09 13:49:40 -0500317 endif()
318endmacro()
319
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500320if(SWIFTSHADER_USE_GROUP_SOURCES)
Corentin Wallez0866b292015-12-09 13:49:40 -0500321 group_all_sources(src)
322endif()
323
324###########################################################
325# Directories
326###########################################################
327
Erwin Jansend46faeb2018-11-19 16:01:37 -0800328set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
Corentin Wallez0866b292015-12-09 13:49:40 -0500329set(OPENGL_DIR ${SOURCE_DIR}/OpenGL)
330set(OPENGL_COMPILER_DIR ${OPENGL_DIR}/compiler)
Chris Forbes3d27f2e2018-09-26 09:24:39 -0700331set(VULKAN_DIR ${SOURCE_DIR}/Vulkan)
Ben Claytonafb4ebd2019-12-02 19:33:17 +0000332set(THIRD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party)
Alexis Hetu1b900872020-02-24 12:09:16 -0500333set(ASTC_DIR ${THIRD_PARTY_DIR}/astc-encoder)
Ben Claytonafb4ebd2019-12-02 19:33:17 +0000334set(LLVM_DIR ${THIRD_PARTY_DIR}/llvm-7.0/llvm)
335set(LLVM_CONFIG_DIR ${THIRD_PARTY_DIR}/llvm-7.0/configs)
336set(LIBBACKTRACE_DIR ${THIRD_PARTY_DIR}/libbacktrace/src)
337set(LIBBACKTRACE_CONFIG_DIR ${THIRD_PARTY_DIR}/libbacktrace/config)
338set(LIBBACKTRACE_INCLUDE_DIR ${THIRD_PARTY_DIR}/libbacktrace/src)
Ben Claytonafb4ebd2019-12-02 19:33:17 +0000339set(CPPDAP_DIR ${THIRD_PARTY_DIR}/cppdap)
340set(CPPDAP_INCLUDE_DIR ${CPPDAP_DIR}/include)
341set(JSON_INCLUDE_DIR ${THIRD_PARTY_DIR}/json/include)
342set(SUBZERO_DIR ${THIRD_PARTY_DIR}/subzero)
343set(SUBZERO_LLVM_DIR ${THIRD_PARTY_DIR}/llvm-subzero)
Erwin Jansend46faeb2018-11-19 16:01:37 -0800344set(TESTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tests)
Ben Claytonafb4ebd2019-12-02 19:33:17 +0000345set(HELLO2_DIR ${THIRD_PARTY_DIR}/PowerVR_SDK/Examples/Beginner/01_HelloAPI/OGLES2)
Corentin Wallez0866b292015-12-09 13:49:40 -0500346
347###########################################################
348# Compile flags
349###########################################################
350
Ben Clayton4ceb77d2019-04-24 12:09:59 +0100351# Flags for project code (non 3rd party)
352set(SWIFTSHADER_COMPILE_OPTIONS "")
353
Nicolas Capens6f422092015-12-23 15:12:45 -0500354macro(set_cpp_flag FLAG)
355 if(${ARGC} GREATER 1)
356 set(CMAKE_CXX_FLAGS_${ARGV1} "${CMAKE_CXX_FLAGS_${ARGV1}} ${FLAG}")
Corentin Wallez0866b292015-12-09 13:49:40 -0500357 else()
Nicolas Capens6f422092015-12-23 15:12:45 -0500358 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}")
Corentin Wallez0866b292015-12-09 13:49:40 -0500359 endif()
360endmacro()
361
Ben Clayton48c8a182019-05-21 20:00:20 +0100362macro(set_linker_flag FLAG)
363 if(${ARGC} GREATER 1)
364 set(CMAKE_EXE_LINKER_FLAGS ${ARGV1} "${CMAKE_EXE_LINKER_FLAGS ${ARGV1}} ${FLAG}")
365 else()
366 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLAG}")
367 endif()
368endmacro()
369
Corentin Wallez0866b292015-12-09 13:49:40 -0500370if(MSVC)
371 set_cpp_flag("/MP")
372 add_definitions(-D_CRT_SECURE_NO_WARNINGS)
Antonio Maiorano5bce1f42019-05-10 16:03:49 -0400373 add_definitions(-D_SCL_SECURE_NO_WARNINGS)
Nicolas Capens4c9f04b2019-01-31 22:09:03 -0500374 add_definitions(-D_SBCS) # Single Byte Character Set (ASCII)
Ben Clayton30b6b592019-08-07 15:04:11 +0100375 add_definitions(-D_ENABLE_EXTENDED_ALIGNED_STORAGE) # Disable MSVC warnings about std::aligned_storage being broken before VS 2017 15.8
Antonio Maiorano5bce1f42019-05-10 16:03:49 -0400376
Nicolas Capensf554c542020-01-09 17:19:35 +0000377 set_cpp_flag("/DEBUG:FASTLINK" DEBUG)
378 set_cpp_flag("/DEBUG:FASTLINK" RELWITHDEBINFO)
379
Antonio Maiorano5bce1f42019-05-10 16:03:49 -0400380 # Disable specific warnings
381 # TODO: Not all of these should be disabled, but for now, we want a warning-free msvc build. Remove these one by one
382 # and fix the actual warnings in code.
383 list(APPEND SWIFTSHADER_COMPILE_OPTIONS
384 "/wd4005" # 'identifier' : macro redefinition
385 "/wd4018" # 'expression' : signed/unsigned mismatch
Ben Clayton4d4a1902019-05-15 11:15:42 +0100386 "/wd4065" # switch statement contains 'default' but no 'case' labels
Antonio Maiorano5bce1f42019-05-10 16:03:49 -0400387 "/wd4141" # 'modifier' : used more than once
Antonio Maiorano5bce1f42019-05-10 16:03:49 -0400388 "/wd4244" # 'conversion' conversion from 'type1' to 'type2', possible loss of data
389 "/wd4267" # 'var' : conversion from 'size_t' to 'type', possible loss of data
390 "/wd4291" # 'void X new(size_t,unsigned int,unsigned int)': no matching operator delete found; memory will not be freed if initialization throws an exception
391 "/wd4309" # 'conversion' : truncation of constant value
392 "/wd4624" # 'derived class' : destructor was implicitly defined as deleted because a base class destructor is inaccessible or deleted
393 "/wd4800" # 'type' : forcing value to bool 'true' or 'false' (performance warning)
394 "/wd4838" # conversion from 'type_1' to 'type_2' requires a narrowing conversion
395 "/wd5030" # attribute 'attribute' is not recognized
396 "/wd5038" # data member 'member1' will be initialized after data member 'member2' data member 'member' will be initialized after base class 'base_class'
397 )
398
399 # Treat specific warnings as errors
400 list(APPEND SWIFTSHADER_COMPILE_OPTIONS
401 "/we4018" # 'expression' : signed/unsigned mismatch
Antonio Maiorano23da0732019-05-14 22:32:16 -0400402 "/we4471" # 'enumeration': a forward declaration of an unscoped enumeration must have an underlying type (int assumed)
Antonio Maiorano5bce1f42019-05-10 16:03:49 -0400403 "/we4838" # conversion from 'type_1' to 'type_2' requires a narrowing conversion
404 "/we5038" # data member 'member1' will be initialized after data member 'member2' data member 'member' will be initialized after base class 'base_class'
405 )
Corentin Wallez0866b292015-12-09 13:49:40 -0500406else()
Nicolas Capens51b28002020-01-30 16:41:00 -0500407 list(APPEND SWIFTSHADER_COMPILE_OPTIONS
408 "-fno-exceptions"
409 )
Ben Clayton09a7f452019-04-25 15:22:43 +0100410
Ben Claytona5f07632020-02-04 11:43:25 +0000411 # Explicitly enable these warnings.
Ben Clayton4ceb77d2019-04-24 12:09:59 +0100412 list(APPEND SWIFTSHADER_COMPILE_OPTIONS
Ben Clayton4ceb77d2019-04-24 12:09:59 +0100413 "-Wall"
Ben Clayton8a983f72019-06-18 17:56:36 +0100414 "-Wreorder"
415 "-Wsign-compare"
416 "-Wmissing-braces"
Ben Clayton4ceb77d2019-04-24 12:09:59 +0100417 )
Corentin Wallez0866b292015-12-09 13:49:40 -0500418
Ben Clayton5e828762019-04-24 19:16:52 +0100419 if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
Ben Clayton4ceb77d2019-04-24 12:09:59 +0100420 list(APPEND SWIFTSHADER_COMPILE_OPTIONS
Ben Clayton8a983f72019-06-18 17:56:36 +0100421 "-Wunused-lambda-capture"
422 "-Wstring-conversion"
423 "-Wextra-semi"
424 "-Wignored-qualifiers"
Ben Claytona5f07632020-02-04 11:43:25 +0000425 )
426 endif()
427
428 # Disable pedanitc warnings
429 if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
430 list(APPEND SWIFTSHADER_COMPILE_OPTIONS
431 "-Wno-ignored-attributes" # ignoring attributes on template argument 'X'
432 "-Wno-attributes" # 'X' attribute ignored
433 "-Wno-strict-aliasing" # dereferencing type-punned pointer will break strict-aliasing rules
434 "-Wno-comment" # multi-line comment
435 )
436 if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9)
437 list(APPEND SWIFTSHADER_COMPILE_OPTIONS
438 "-Wno-init-list-lifetime" # assignment from temporary initializer_list does not extend the lifetime of the underlying array
439 )
440 endif()
441 elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
442 list(APPEND SWIFTSHADER_COMPILE_OPTIONS
443 "-Wno-unneeded-internal-declaration" # function 'X' is not needed and will not be emitted
444 "-Wno-unused-private-field" # private field 'offset' is not used - TODO: Consider enabling this once Vulkan is further implemented.
445 "-Wno-comment" # multi-line comment
446 "-Wno-undefined-var-template" # instantiation of variable 'X' required here, but no definition is available
447
Nicolas Capens67180a02019-06-17 15:27:03 -0400448 # Silence errors caused by unknown warnings when building with older
449 # versions of Clang. This demands checking that warnings added above
450 # are spelled correctly and work as intended!
451 "-Wno-unknown-warning-option"
Ben Clayton4ceb77d2019-04-24 12:09:59 +0100452 )
Nicolas Capens825d3442018-11-06 23:50:05 -0500453 endif()
454
Corentin Wallez0866b292015-12-09 13:49:40 -0500455 # Remove xor, and, or and friends from the list of keywords, they are used
456 # by Reactor
Ben Clayton4ceb77d2019-04-24 12:09:59 +0100457 list(APPEND SWIFTSHADER_COMPILE_OPTIONS
458 "-fno-operator-names"
459 )
Corentin Wallez0866b292015-12-09 13:49:40 -0500460
461 # LLVM headers requires these flags to be set
462 set_cpp_flag("-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS")
463
Nicolas Capens499bb762018-06-29 13:30:57 -0400464 if(ARCH STREQUAL "x86")
Corentin Wallez0866b292015-12-09 13:49:40 -0500465 set_cpp_flag("-m32")
466 set_cpp_flag("-msse2")
Nicolas Capens0424edc2018-01-03 14:06:30 -0500467 set_cpp_flag("-mfpmath=sse")
468 set_cpp_flag("-march=pentium4")
469 set_cpp_flag("-mtune=generic")
Corentin Wallez0866b292015-12-09 13:49:40 -0500470 endif()
Nicolas Capens499bb762018-06-29 13:30:57 -0400471 if(ARCH STREQUAL "x86_64")
Corentin Wallez0866b292015-12-09 13:49:40 -0500472 set_cpp_flag("-m64")
473 set_cpp_flag("-fPIC")
Nicolas Capens0424edc2018-01-03 14:06:30 -0500474 set_cpp_flag("-march=x86-64")
475 set_cpp_flag("-mtune=generic")
Corentin Wallez0866b292015-12-09 13:49:40 -0500476 endif()
Gordana Cmiljanovic082dfec2018-10-19 11:36:15 +0200477 if(ARCH STREQUAL "mipsel")
Jiaxun Yang55275c32020-02-09 14:52:42 +0800478 set_cpp_flag("-EL")
Gordana Cmiljanovic082dfec2018-10-19 11:36:15 +0200479 set_cpp_flag("-march=mips32r2")
480 set_cpp_flag("-fPIC")
481 set_cpp_flag("-mhard-float")
482 set_cpp_flag("-mfp32")
Jiaxun Yang55275c32020-02-09 14:52:42 +0800483 set_cpp_flag("-mxgot")
Gordana Cmiljanovic082dfec2018-10-19 11:36:15 +0200484 endif()
Gordana Cmiljanovic20622c02018-11-05 15:00:11 +0100485 if(ARCH STREQUAL "mips64el")
Jiaxun Yang55275c32020-02-09 14:52:42 +0800486 set_cpp_flag("-EL")
Gordana Cmiljanovic20622c02018-11-05 15:00:11 +0100487 set_cpp_flag("-march=mips64r2")
488 set_cpp_flag("-mabi=64")
489 set_cpp_flag("-fPIC")
Jiaxun Yang55275c32020-02-09 14:52:42 +0800490 set_cpp_flag("-mxgot")
Gordana Cmiljanovic20622c02018-11-05 15:00:11 +0100491 endif()
Nicolas Capens499bb762018-06-29 13:30:57 -0400492
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500493 if(SWIFTSHADER_LESS_DEBUG_INFO)
Paul Thomson09b50792019-10-17 12:55:56 +0100494 # Use -g1 to be able to get stack traces
495 set_cpp_flag("-g -g1" DEBUG)
496 set_cpp_flag("-g -g1" RELWITHDEBINFO)
497 else()
498 # Use -g3 to have even more debug info
499 set_cpp_flag("-g -g3" DEBUG)
500 set_cpp_flag("-g -g3" RELWITHDEBINFO)
501 endif()
502
Ben Clayton09a91e42019-02-05 17:58:38 +0000503 if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
504 # Treated as an unused argument with clang
505 set_cpp_flag("-s" RELEASE)
506 endif()
Corentin Wallez0866b292015-12-09 13:49:40 -0500507
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500508 if(SWIFTSHADER_DCHECK_ALWAYS_ON)
Ben Clayton4ceb77d2019-04-24 12:09:59 +0100509 list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DDCHECK_ALWAYS_ON")
Ben Claytonf1172912019-02-26 16:52:12 +0000510 endif()
511
Corentin Wallez0866b292015-12-09 13:49:40 -0500512 # For distribution it is more important to be slim than super optimized
Alexis Hetu2c0546d2017-05-24 11:16:26 -0400513 set_cpp_flag("-Os" RELEASE)
514 set_cpp_flag("-Os" RELWITHDEBINFO)
Corentin Wallez0866b292015-12-09 13:49:40 -0500515
516 set_cpp_flag("-DNDEBUG" RELEASE)
517 set_cpp_flag("-DNDEBUG" RELWITHDEBINFO)
518 set_cpp_flag("-DANGLE_DISABLE_TRACE" RELEASE)
519 set_cpp_flag("-DANGLE_DISABLE_TRACE" RELWITHDEBINFO)
520
521 # Put each variable and function in its own section so that when linking
522 # with -gc-sections unused functions and variables are removed.
523 set_cpp_flag("-ffunction-sections" RELEASE)
524 set_cpp_flag("-fdata-sections" RELEASE)
525 set_cpp_flag("-fomit-frame-pointer" RELEASE)
Nicolas Capensbf8fd5b2018-06-21 00:42:00 -0400526
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500527 if(SWIFTSHADER_MSAN)
Ben Claytondae97922019-05-17 12:09:31 +0100528 set_cpp_flag("-fsanitize=memory")
Ben Clayton48c8a182019-05-21 20:00:20 +0100529 set_linker_flag("-fsanitize=memory")
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500530 elseif(SWIFTSHADER_ASAN)
Ben Claytondae97922019-05-17 12:09:31 +0100531 set_cpp_flag("-fsanitize=address")
Ben Clayton48c8a182019-05-21 20:00:20 +0100532 set_linker_flag("-fsanitize=address")
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500533 elseif(SWIFTSHADER_TSAN)
Ben Claytondae97922019-05-17 12:09:31 +0100534 set_cpp_flag("-fsanitize=thread")
Ben Clayton48c8a182019-05-21 20:00:20 +0100535 set_linker_flag("-fsanitize=thread")
Sean Risserf6d3cbb2020-01-08 14:44:53 -0500536 elseif(SWIFTSHADER_UBSAN)
Ben Claytondae97922019-05-17 12:09:31 +0100537 set_cpp_flag("-fsanitize=undefined")
Ben Clayton48c8a182019-05-21 20:00:20 +0100538 set_linker_flag("-fsanitize=undefined")
Nicolas Capensbf8fd5b2018-06-21 00:42:00 -0400539 endif()
Corentin Wallez0866b292015-12-09 13:49:40 -0500540endif()
541
Nicolas Capens8c13b2f2020-03-06 01:12:01 -0500542if(SWIFTSHADER_WARNINGS_AS_ERRORS)
543 if(MSVC)
544 set(WARNINGS_AS_ERRORS "/WX") # Treat all warnings as errors
545 else()
546 set(WARNINGS_AS_ERRORS "-Werror") # Treat all warnings as errors
547 endif()
548endif()
549
Antonio Maioranof448d8e2019-04-26 16:19:16 -0400550if(REACTOR_EMIT_PRINT_LOCATION)
Antonio Maiorano415d1812020-02-11 16:22:55 -0500551 # This feature depends on REACTOR_EMIT_DEBUG_INFO and REACTOR_ENABLE_PRINT
Antonio Maioranof448d8e2019-04-26 16:19:16 -0400552 set(REACTOR_EMIT_DEBUG_INFO "On")
Antonio Maiorano415d1812020-02-11 16:22:55 -0500553 set(REACTOR_ENABLE_PRINT "On")
Antonio Maioranof448d8e2019-04-26 16:19:16 -0400554 list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DENABLE_RR_EMIT_PRINT_LOCATION")
555endif()
556
557if(REACTOR_EMIT_DEBUG_INFO)
558 message(WARNING "REACTOR_EMIT_DEBUG_INFO is enabled. This will likely affect performance.")
559 list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DENABLE_RR_DEBUG_INFO")
560endif()
561
Antonio Maiorano415d1812020-02-11 16:22:55 -0500562if(REACTOR_ENABLE_PRINT)
563 list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DENABLE_RR_PRINT")
564endif()
565
Ben Clayton5375f472019-06-24 13:33:11 +0100566if(REACTOR_VERIFY_LLVM_IR)
567 list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DENABLE_RR_LLVM_IR_VERIFICATION")
568endif()
569
Antonio Maiorano062dc182019-12-09 11:52:31 -0500570if(REACTOR_DEFAULT_OPT_LEVEL)
571 list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DREACTOR_DEFAULT_OPT_LEVEL=${REACTOR_DEFAULT_OPT_LEVEL}")
572endif()
573
Nicolas Capensbf8fd5b2018-06-21 00:42:00 -0400574if(WIN32)
Corentin Wallez0866b292015-12-09 13:49:40 -0500575 add_definitions(-DWINVER=0x501 -DNOMINMAX -DSTRICT)
Nicolas Capens6f422092015-12-23 15:12:45 -0500576 set(CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_FIND_LIBRARY_PREFIXES} "" "lib")
Corentin Wallez0866b292015-12-09 13:49:40 -0500577endif()
578
Corentin Wallez0866b292015-12-09 13:49:40 -0500579###########################################################
580# LLVM
581###########################################################
582
Logan Chien0eedc8c2018-08-21 09:34:28 +0800583set(LLVM_LIST
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400584 ${LLVM_DIR}/lib/Analysis/AliasAnalysis.cpp
585 ${LLVM_DIR}/lib/Analysis/AliasAnalysisSummary.cpp
586 ${LLVM_DIR}/lib/Analysis/AliasSetTracker.cpp
587 ${LLVM_DIR}/lib/Analysis/AssumptionCache.cpp
588 ${LLVM_DIR}/lib/Analysis/BasicAliasAnalysis.cpp
589 ${LLVM_DIR}/lib/Analysis/BlockFrequencyInfo.cpp
590 ${LLVM_DIR}/lib/Analysis/BlockFrequencyInfoImpl.cpp
591 ${LLVM_DIR}/lib/Analysis/BranchProbabilityInfo.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400592 ${LLVM_DIR}/lib/Analysis/CallGraph.cpp
593 ${LLVM_DIR}/lib/Analysis/CallGraphSCCPass.cpp
594 ${LLVM_DIR}/lib/Analysis/CaptureTracking.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100595 ${LLVM_DIR}/lib/Analysis/CFG.cpp
596 ${LLVM_DIR}/lib/Analysis/CFLAndersAliasAnalysis.cpp
597 ${LLVM_DIR}/lib/Analysis/CFLSteensAliasAnalysis.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400598 ${LLVM_DIR}/lib/Analysis/CmpInstAnalysis.cpp
599 ${LLVM_DIR}/lib/Analysis/CodeMetrics.cpp
600 ${LLVM_DIR}/lib/Analysis/ConstantFolding.cpp
601 ${LLVM_DIR}/lib/Analysis/DemandedBits.cpp
602 ${LLVM_DIR}/lib/Analysis/DependenceAnalysis.cpp
603 ${LLVM_DIR}/lib/Analysis/DivergenceAnalysis.cpp
604 ${LLVM_DIR}/lib/Analysis/DominanceFrontier.cpp
605 ${LLVM_DIR}/lib/Analysis/EHPersonalities.cpp
606 ${LLVM_DIR}/lib/Analysis/GlobalsModRef.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400607 ${LLVM_DIR}/lib/Analysis/InlineCost.cpp
608 ${LLVM_DIR}/lib/Analysis/InstructionSimplify.cpp
609 ${LLVM_DIR}/lib/Analysis/IteratedDominanceFrontier.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100610 ${LLVM_DIR}/lib/Analysis/IVUsers.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400611 ${LLVM_DIR}/lib/Analysis/LazyBlockFrequencyInfo.cpp
612 ${LLVM_DIR}/lib/Analysis/LazyBranchProbabilityInfo.cpp
613 ${LLVM_DIR}/lib/Analysis/LazyValueInfo.cpp
614 ${LLVM_DIR}/lib/Analysis/Loads.cpp
615 ${LLVM_DIR}/lib/Analysis/LoopAnalysisManager.cpp
616 ${LLVM_DIR}/lib/Analysis/LoopInfo.cpp
617 ${LLVM_DIR}/lib/Analysis/LoopPass.cpp
618 ${LLVM_DIR}/lib/Analysis/MemoryBuiltins.cpp
619 ${LLVM_DIR}/lib/Analysis/MemoryDependenceAnalysis.cpp
620 ${LLVM_DIR}/lib/Analysis/MemoryLocation.cpp
621 ${LLVM_DIR}/lib/Analysis/MemorySSA.cpp
Ben Clayton1c82c7b2019-04-30 12:49:27 +0100622 ${LLVM_DIR}/lib/Analysis/MemorySSAUpdater.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400623 ${LLVM_DIR}/lib/Analysis/MustExecute.cpp
624 ${LLVM_DIR}/lib/Analysis/ObjCARCAliasAnalysis.cpp
625 ${LLVM_DIR}/lib/Analysis/ObjCARCAnalysisUtils.cpp
626 ${LLVM_DIR}/lib/Analysis/ObjCARCInstKind.cpp
627 ${LLVM_DIR}/lib/Analysis/OptimizationRemarkEmitter.cpp
628 ${LLVM_DIR}/lib/Analysis/OrderedBasicBlock.cpp
629 ${LLVM_DIR}/lib/Analysis/PHITransAddr.cpp
630 ${LLVM_DIR}/lib/Analysis/PhiValues.cpp
631 ${LLVM_DIR}/lib/Analysis/PostDominators.cpp
632 ${LLVM_DIR}/lib/Analysis/ProfileSummaryInfo.cpp
633 ${LLVM_DIR}/lib/Analysis/PtrUseVisitor.cpp
634 ${LLVM_DIR}/lib/Analysis/ScalarEvolution.cpp
635 ${LLVM_DIR}/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
636 ${LLVM_DIR}/lib/Analysis/ScalarEvolutionExpander.cpp
637 ${LLVM_DIR}/lib/Analysis/ScalarEvolutionNormalization.cpp
638 ${LLVM_DIR}/lib/Analysis/ScopedNoAliasAA.cpp
639 ${LLVM_DIR}/lib/Analysis/TargetLibraryInfo.cpp
640 ${LLVM_DIR}/lib/Analysis/TargetTransformInfo.cpp
641 ${LLVM_DIR}/lib/Analysis/TypeBasedAliasAnalysis.cpp
642 ${LLVM_DIR}/lib/Analysis/ValueLattice.cpp
643 ${LLVM_DIR}/lib/Analysis/ValueLatticeUtils.cpp
644 ${LLVM_DIR}/lib/Analysis/ValueTracking.cpp
645 ${LLVM_DIR}/lib/Analysis/VectorUtils.cpp
646 ${LLVM_DIR}/lib/AsmParser/LLLexer.cpp
647 ${LLVM_DIR}/lib/AsmParser/LLParser.cpp
648 ${LLVM_DIR}/lib/AsmParser/Parser.cpp
649 ${LLVM_DIR}/lib/BinaryFormat/Dwarf.cpp
650 ${LLVM_DIR}/lib/BinaryFormat/Magic.cpp
651 ${LLVM_DIR}/lib/BinaryFormat/Wasm.cpp
652 ${LLVM_DIR}/lib/Bitcode/Reader/BitcodeReader.cpp
653 ${LLVM_DIR}/lib/Bitcode/Reader/BitstreamReader.cpp
654 ${LLVM_DIR}/lib/Bitcode/Reader/MetadataLoader.cpp
655 ${LLVM_DIR}/lib/Bitcode/Reader/ValueList.cpp
656 ${LLVM_DIR}/lib/CodeGen/AggressiveAntiDepBreaker.cpp
657 ${LLVM_DIR}/lib/CodeGen/AllocationOrder.cpp
658 ${LLVM_DIR}/lib/CodeGen/Analysis.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400659 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AccelTable.cpp
660 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AddressPool.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100661 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/ARMException.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400662 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
663 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
664 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
665 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400666 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp
667 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
668 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DebugLocStream.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100669 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DIE.cpp
670 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DIEHash.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400671 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
672 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
673 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
674 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
675 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfFile.cpp
676 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp
677 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
678 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/EHStreamer.cpp
679 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/WinCFGuard.cpp
680 ${LLVM_DIR}/lib/CodeGen/AsmPrinter/WinException.cpp
681 ${LLVM_DIR}/lib/CodeGen/AtomicExpandPass.cpp
682 ${LLVM_DIR}/lib/CodeGen/BasicTargetTransformInfo.cpp
683 ${LLVM_DIR}/lib/CodeGen/BranchFolding.cpp
684 ${LLVM_DIR}/lib/CodeGen/BranchRelaxation.cpp
685 ${LLVM_DIR}/lib/CodeGen/BreakFalseDeps.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400686 ${LLVM_DIR}/lib/CodeGen/CalcSpillWeights.cpp
687 ${LLVM_DIR}/lib/CodeGen/CallingConvLower.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100688 ${LLVM_DIR}/lib/CodeGen/CFIInstrInserter.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400689 ${LLVM_DIR}/lib/CodeGen/CodeGen.cpp
690 ${LLVM_DIR}/lib/CodeGen/CodeGenPrepare.cpp
691 ${LLVM_DIR}/lib/CodeGen/CriticalAntiDepBreaker.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400692 ${LLVM_DIR}/lib/CodeGen/DeadMachineInstructionElim.cpp
693 ${LLVM_DIR}/lib/CodeGen/DetectDeadLanes.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100694 ${LLVM_DIR}/lib/CodeGen/DFAPacketizer.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400695 ${LLVM_DIR}/lib/CodeGen/DwarfEHPrepare.cpp
696 ${LLVM_DIR}/lib/CodeGen/EarlyIfConversion.cpp
697 ${LLVM_DIR}/lib/CodeGen/EdgeBundles.cpp
698 ${LLVM_DIR}/lib/CodeGen/ExecutionDomainFix.cpp
699 ${LLVM_DIR}/lib/CodeGen/ExpandISelPseudos.cpp
700 ${LLVM_DIR}/lib/CodeGen/ExpandMemCmp.cpp
701 ${LLVM_DIR}/lib/CodeGen/ExpandPostRAPseudos.cpp
702 ${LLVM_DIR}/lib/CodeGen/ExpandReductions.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400703 ${LLVM_DIR}/lib/CodeGen/FaultMaps.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100704 ${LLVM_DIR}/lib/CodeGen/FEntryInserter.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400705 ${LLVM_DIR}/lib/CodeGen/FuncletLayout.cpp
706 ${LLVM_DIR}/lib/CodeGen/GCMetadata.cpp
707 ${LLVM_DIR}/lib/CodeGen/GCMetadataPrinter.cpp
708 ${LLVM_DIR}/lib/CodeGen/GCRootLowering.cpp
709 ${LLVM_DIR}/lib/CodeGen/GCStrategy.cpp
710 ${LLVM_DIR}/lib/CodeGen/GlobalISel/CallLowering.cpp
711 ${LLVM_DIR}/lib/CodeGen/GlobalISel/GlobalISel.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400712 ${LLVM_DIR}/lib/CodeGen/GlobalISel/InstructionSelect.cpp
713 ${LLVM_DIR}/lib/CodeGen/GlobalISel/InstructionSelector.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100714 ${LLVM_DIR}/lib/CodeGen/GlobalISel/IRTranslator.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400715 ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
716 ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalizeMutations.cpp
717 ${LLVM_DIR}/lib/CodeGen/GlobalISel/Legalizer.cpp
718 ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
719 ${LLVM_DIR}/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
720 ${LLVM_DIR}/lib/CodeGen/GlobalISel/Localizer.cpp
721 ${LLVM_DIR}/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
722 ${LLVM_DIR}/lib/CodeGen/GlobalISel/RegBankSelect.cpp
723 ${LLVM_DIR}/lib/CodeGen/GlobalISel/RegisterBank.cpp
724 ${LLVM_DIR}/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
725 ${LLVM_DIR}/lib/CodeGen/GlobalISel/Utils.cpp
726 ${LLVM_DIR}/lib/CodeGen/IfConversion.cpp
727 ${LLVM_DIR}/lib/CodeGen/ImplicitNullChecks.cpp
728 ${LLVM_DIR}/lib/CodeGen/IndirectBrExpandPass.cpp
729 ${LLVM_DIR}/lib/CodeGen/InlineSpiller.cpp
730 ${LLVM_DIR}/lib/CodeGen/InterferenceCache.cpp
731 ${LLVM_DIR}/lib/CodeGen/InterleavedAccessPass.cpp
732 ${LLVM_DIR}/lib/CodeGen/IntrinsicLowering.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400733 ${LLVM_DIR}/lib/CodeGen/LatencyPriorityQueue.cpp
734 ${LLVM_DIR}/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
735 ${LLVM_DIR}/lib/CodeGen/LexicalScopes.cpp
736 ${LLVM_DIR}/lib/CodeGen/LiveDebugValues.cpp
737 ${LLVM_DIR}/lib/CodeGen/LiveDebugVariables.cpp
738 ${LLVM_DIR}/lib/CodeGen/LiveInterval.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400739 ${LLVM_DIR}/lib/CodeGen/LiveIntervals.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100740 ${LLVM_DIR}/lib/CodeGen/LiveIntervalUnion.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400741 ${LLVM_DIR}/lib/CodeGen/LivePhysRegs.cpp
742 ${LLVM_DIR}/lib/CodeGen/LiveRangeCalc.cpp
743 ${LLVM_DIR}/lib/CodeGen/LiveRangeEdit.cpp
744 ${LLVM_DIR}/lib/CodeGen/LiveRangeShrink.cpp
745 ${LLVM_DIR}/lib/CodeGen/LiveRegMatrix.cpp
746 ${LLVM_DIR}/lib/CodeGen/LiveRegUnits.cpp
747 ${LLVM_DIR}/lib/CodeGen/LiveStacks.cpp
748 ${LLVM_DIR}/lib/CodeGen/LiveVariables.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100749 ${LLVM_DIR}/lib/CodeGen/LLVMTargetMachine.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400750 ${LLVM_DIR}/lib/CodeGen/LocalStackSlotAllocation.cpp
751 ${LLVM_DIR}/lib/CodeGen/LoopTraversal.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400752 ${LLVM_DIR}/lib/CodeGen/LowerEmuTLS.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100753 ${LLVM_DIR}/lib/CodeGen/LowLevelType.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400754 ${LLVM_DIR}/lib/CodeGen/MachineBasicBlock.cpp
755 ${LLVM_DIR}/lib/CodeGen/MachineBlockFrequencyInfo.cpp
756 ${LLVM_DIR}/lib/CodeGen/MachineBlockPlacement.cpp
757 ${LLVM_DIR}/lib/CodeGen/MachineBranchProbabilityInfo.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400758 ${LLVM_DIR}/lib/CodeGen/MachineCombiner.cpp
759 ${LLVM_DIR}/lib/CodeGen/MachineCopyPropagation.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100760 ${LLVM_DIR}/lib/CodeGen/MachineCSE.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400761 ${LLVM_DIR}/lib/CodeGen/MachineDominanceFrontier.cpp
762 ${LLVM_DIR}/lib/CodeGen/MachineDominators.cpp
763 ${LLVM_DIR}/lib/CodeGen/MachineFrameInfo.cpp
764 ${LLVM_DIR}/lib/CodeGen/MachineFunction.cpp
765 ${LLVM_DIR}/lib/CodeGen/MachineFunctionPass.cpp
766 ${LLVM_DIR}/lib/CodeGen/MachineFunctionPrinterPass.cpp
767 ${LLVM_DIR}/lib/CodeGen/MachineInstr.cpp
768 ${LLVM_DIR}/lib/CodeGen/MachineInstrBundle.cpp
769 ${LLVM_DIR}/lib/CodeGen/MachineLICM.cpp
770 ${LLVM_DIR}/lib/CodeGen/MachineLoopInfo.cpp
771 ${LLVM_DIR}/lib/CodeGen/MachineModuleInfo.cpp
772 ${LLVM_DIR}/lib/CodeGen/MachineModuleInfoImpls.cpp
773 ${LLVM_DIR}/lib/CodeGen/MachineOperand.cpp
774 ${LLVM_DIR}/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
775 ${LLVM_DIR}/lib/CodeGen/MachineOutliner.cpp
776 ${LLVM_DIR}/lib/CodeGen/MachinePassRegistry.cpp
777 ${LLVM_DIR}/lib/CodeGen/MachinePipeliner.cpp
778 ${LLVM_DIR}/lib/CodeGen/MachinePostDominators.cpp
779 ${LLVM_DIR}/lib/CodeGen/MachineRegionInfo.cpp
780 ${LLVM_DIR}/lib/CodeGen/MachineRegisterInfo.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400781 ${LLVM_DIR}/lib/CodeGen/MachineScheduler.cpp
782 ${LLVM_DIR}/lib/CodeGen/MachineSink.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100783 ${LLVM_DIR}/lib/CodeGen/MachineSSAUpdater.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400784 ${LLVM_DIR}/lib/CodeGen/MachineTraceMetrics.cpp
785 ${LLVM_DIR}/lib/CodeGen/MachineVerifier.cpp
786 ${LLVM_DIR}/lib/CodeGen/MacroFusion.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100787 ${LLVM_DIR}/lib/CodeGen/MIRCanonicalizerPass.cpp
788 ${LLVM_DIR}/lib/CodeGen/MIRPrinter.cpp
789 ${LLVM_DIR}/lib/CodeGen/MIRPrintingPass.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400790 ${LLVM_DIR}/lib/CodeGen/OptimizePHIs.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400791 ${LLVM_DIR}/lib/CodeGen/PatchableFunction.cpp
792 ${LLVM_DIR}/lib/CodeGen/PeepholeOptimizer.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100793 ${LLVM_DIR}/lib/CodeGen/PHIElimination.cpp
794 ${LLVM_DIR}/lib/CodeGen/PHIEliminationUtils.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400795 ${LLVM_DIR}/lib/CodeGen/PostRAHazardRecognizer.cpp
796 ${LLVM_DIR}/lib/CodeGen/PostRASchedulerList.cpp
797 ${LLVM_DIR}/lib/CodeGen/PreISelIntrinsicLowering.cpp
798 ${LLVM_DIR}/lib/CodeGen/ProcessImplicitDefs.cpp
799 ${LLVM_DIR}/lib/CodeGen/PrologEpilogInserter.cpp
800 ${LLVM_DIR}/lib/CodeGen/PseudoSourceValue.cpp
801 ${LLVM_DIR}/lib/CodeGen/ReachingDefAnalysis.cpp
802 ${LLVM_DIR}/lib/CodeGen/RegAllocBase.cpp
803 ${LLVM_DIR}/lib/CodeGen/RegAllocBasic.cpp
804 ${LLVM_DIR}/lib/CodeGen/RegAllocFast.cpp
805 ${LLVM_DIR}/lib/CodeGen/RegAllocGreedy.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400806 ${LLVM_DIR}/lib/CodeGen/RegisterClassInfo.cpp
807 ${LLVM_DIR}/lib/CodeGen/RegisterCoalescer.cpp
808 ${LLVM_DIR}/lib/CodeGen/RegisterPressure.cpp
809 ${LLVM_DIR}/lib/CodeGen/RegisterScavenging.cpp
810 ${LLVM_DIR}/lib/CodeGen/RegisterUsageInfo.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100811 ${LLVM_DIR}/lib/CodeGen/RegUsageInfoCollector.cpp
812 ${LLVM_DIR}/lib/CodeGen/RegUsageInfoPropagate.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400813 ${LLVM_DIR}/lib/CodeGen/RenameIndependentSubregs.cpp
814 ${LLVM_DIR}/lib/CodeGen/ResetMachineFunctionPass.cpp
815 ${LLVM_DIR}/lib/CodeGen/SafeStack.cpp
816 ${LLVM_DIR}/lib/CodeGen/SafeStackColoring.cpp
817 ${LLVM_DIR}/lib/CodeGen/SafeStackLayout.cpp
818 ${LLVM_DIR}/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp
819 ${LLVM_DIR}/lib/CodeGen/ScheduleDAG.cpp
820 ${LLVM_DIR}/lib/CodeGen/ScheduleDAGInstrs.cpp
821 ${LLVM_DIR}/lib/CodeGen/ScheduleDAGPrinter.cpp
822 ${LLVM_DIR}/lib/CodeGen/ScoreboardHazardRecognizer.cpp
823 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
824 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/FastISel.cpp
825 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
826 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
827 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
828 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
829 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
830 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
831 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
832 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
833 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
834 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp
835 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
836 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
837 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp
838 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
839 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp
840 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
841 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
842 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
843 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
844 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp
845 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
846 ${LLVM_DIR}/lib/CodeGen/SelectionDAG/TargetLowering.cpp
847 ${LLVM_DIR}/lib/CodeGen/ShadowStackGCLowering.cpp
848 ${LLVM_DIR}/lib/CodeGen/ShrinkWrap.cpp
849 ${LLVM_DIR}/lib/CodeGen/SjLjEHPrepare.cpp
850 ${LLVM_DIR}/lib/CodeGen/SlotIndexes.cpp
851 ${LLVM_DIR}/lib/CodeGen/SpillPlacement.cpp
852 ${LLVM_DIR}/lib/CodeGen/SplitKit.cpp
853 ${LLVM_DIR}/lib/CodeGen/StackColoring.cpp
854 ${LLVM_DIR}/lib/CodeGen/StackMapLivenessAnalysis.cpp
855 ${LLVM_DIR}/lib/CodeGen/StackMaps.cpp
856 ${LLVM_DIR}/lib/CodeGen/StackProtector.cpp
857 ${LLVM_DIR}/lib/CodeGen/StackSlotColoring.cpp
858 ${LLVM_DIR}/lib/CodeGen/TailDuplication.cpp
859 ${LLVM_DIR}/lib/CodeGen/TailDuplicator.cpp
860 ${LLVM_DIR}/lib/CodeGen/TargetFrameLoweringImpl.cpp
861 ${LLVM_DIR}/lib/CodeGen/TargetInstrInfo.cpp
862 ${LLVM_DIR}/lib/CodeGen/TargetLoweringBase.cpp
863 ${LLVM_DIR}/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
864 ${LLVM_DIR}/lib/CodeGen/TargetOptionsImpl.cpp
865 ${LLVM_DIR}/lib/CodeGen/TargetPassConfig.cpp
866 ${LLVM_DIR}/lib/CodeGen/TargetRegisterInfo.cpp
867 ${LLVM_DIR}/lib/CodeGen/TargetSchedule.cpp
868 ${LLVM_DIR}/lib/CodeGen/TargetSubtargetInfo.cpp
869 ${LLVM_DIR}/lib/CodeGen/TwoAddressInstructionPass.cpp
870 ${LLVM_DIR}/lib/CodeGen/UnreachableBlockElim.cpp
871 ${LLVM_DIR}/lib/CodeGen/ValueTypes.cpp
872 ${LLVM_DIR}/lib/CodeGen/VirtRegMap.cpp
873 ${LLVM_DIR}/lib/CodeGen/WasmEHPrepare.cpp
874 ${LLVM_DIR}/lib/CodeGen/WinEHPrepare.cpp
875 ${LLVM_DIR}/lib/CodeGen/XRayInstrumentation.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400876 ${LLVM_DIR}/lib/DebugInfo/CodeView/CodeViewError.cpp
877 ${LLVM_DIR}/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
878 ${LLVM_DIR}/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100879 ${LLVM_DIR}/lib/DebugInfo/CodeView/CVTypeVisitor.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400880 ${LLVM_DIR}/lib/DebugInfo/CodeView/Formatters.cpp
881 ${LLVM_DIR}/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp
882 ${LLVM_DIR}/lib/DebugInfo/CodeView/Line.cpp
883 ${LLVM_DIR}/lib/DebugInfo/CodeView/RecordName.cpp
884 ${LLVM_DIR}/lib/DebugInfo/CodeView/RecordSerialization.cpp
885 ${LLVM_DIR}/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp
886 ${LLVM_DIR}/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
887 ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp
888 ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeHashing.cpp
889 ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeIndex.cpp
890 ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
891 ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeRecordMapping.cpp
892 ${LLVM_DIR}/lib/DebugInfo/CodeView/TypeTableCollection.cpp
893 ${LLVM_DIR}/lib/ExecutionEngine/ExecutionEngine.cpp
894 ${LLVM_DIR}/lib/ExecutionEngine/GDBRegistrationListener.cpp
895 ${LLVM_DIR}/lib/ExecutionEngine/Orc/Core.cpp
896 ${LLVM_DIR}/lib/ExecutionEngine/Orc/Legacy.cpp
897 ${LLVM_DIR}/lib/ExecutionEngine/Orc/OrcError.cpp
898 ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
899 ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
900 ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400901 ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100902 ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400903 ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
904 ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
905 ${LLVM_DIR}/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp
906 ${LLVM_DIR}/lib/ExecutionEngine/SectionMemoryManager.cpp
907 ${LLVM_DIR}/lib/ExecutionEngine/TargetSelect.cpp
908 ${LLVM_DIR}/lib/IR/AsmWriter.cpp
909 ${LLVM_DIR}/lib/IR/Attributes.cpp
910 ${LLVM_DIR}/lib/IR/AutoUpgrade.cpp
911 ${LLVM_DIR}/lib/IR/BasicBlock.cpp
912 ${LLVM_DIR}/lib/IR/Comdat.cpp
913 ${LLVM_DIR}/lib/IR/ConstantFold.cpp
914 ${LLVM_DIR}/lib/IR/ConstantRange.cpp
915 ${LLVM_DIR}/lib/IR/Constants.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400916 ${LLVM_DIR}/lib/IR/DataLayout.cpp
917 ${LLVM_DIR}/lib/IR/DebugInfo.cpp
918 ${LLVM_DIR}/lib/IR/DebugInfoMetadata.cpp
919 ${LLVM_DIR}/lib/IR/DebugLoc.cpp
920 ${LLVM_DIR}/lib/IR/DiagnosticHandler.cpp
921 ${LLVM_DIR}/lib/IR/DiagnosticInfo.cpp
922 ${LLVM_DIR}/lib/IR/DiagnosticPrinter.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100923 ${LLVM_DIR}/lib/IR/DIBuilder.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400924 ${LLVM_DIR}/lib/IR/Dominators.cpp
925 ${LLVM_DIR}/lib/IR/Function.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400926 ${LLVM_DIR}/lib/IR/Globals.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100927 ${LLVM_DIR}/lib/IR/GVMaterializer.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400928 ${LLVM_DIR}/lib/IR/InlineAsm.cpp
929 ${LLVM_DIR}/lib/IR/Instruction.cpp
930 ${LLVM_DIR}/lib/IR/Instructions.cpp
931 ${LLVM_DIR}/lib/IR/IntrinsicInst.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100932 ${LLVM_DIR}/lib/IR/IRBuilder.cpp
933 ${LLVM_DIR}/lib/IR/IRPrintingPasses.cpp
934 ${LLVM_DIR}/lib/IR/LegacyPassManager.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400935 ${LLVM_DIR}/lib/IR/LLVMContext.cpp
936 ${LLVM_DIR}/lib/IR/LLVMContextImpl.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400937 ${LLVM_DIR}/lib/IR/Mangler.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100938 ${LLVM_DIR}/lib/IR/MDBuilder.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400939 ${LLVM_DIR}/lib/IR/Metadata.cpp
940 ${LLVM_DIR}/lib/IR/Module.cpp
941 ${LLVM_DIR}/lib/IR/Operator.cpp
942 ${LLVM_DIR}/lib/IR/OptBisect.cpp
943 ${LLVM_DIR}/lib/IR/Pass.cpp
944 ${LLVM_DIR}/lib/IR/PassManager.cpp
945 ${LLVM_DIR}/lib/IR/PassRegistry.cpp
946 ${LLVM_DIR}/lib/IR/ProfileSummary.cpp
947 ${LLVM_DIR}/lib/IR/Statepoint.cpp
948 ${LLVM_DIR}/lib/IR/Type.cpp
949 ${LLVM_DIR}/lib/IR/TypeFinder.cpp
950 ${LLVM_DIR}/lib/IR/Use.cpp
951 ${LLVM_DIR}/lib/IR/User.cpp
952 ${LLVM_DIR}/lib/IR/Value.cpp
953 ${LLVM_DIR}/lib/IR/ValueSymbolTable.cpp
954 ${LLVM_DIR}/lib/IR/Verifier.cpp
955 ${LLVM_DIR}/lib/MC/ELFObjectWriter.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100956 ${LLVM_DIR}/lib/MC/MachObjectWriter.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400957 ${LLVM_DIR}/lib/MC/MCAsmBackend.cpp
958 ${LLVM_DIR}/lib/MC/MCAsmInfo.cpp
959 ${LLVM_DIR}/lib/MC/MCAsmInfoCOFF.cpp
960 ${LLVM_DIR}/lib/MC/MCAsmInfoDarwin.cpp
961 ${LLVM_DIR}/lib/MC/MCAsmInfoELF.cpp
962 ${LLVM_DIR}/lib/MC/MCAsmMacro.cpp
963 ${LLVM_DIR}/lib/MC/MCAsmStreamer.cpp
964 ${LLVM_DIR}/lib/MC/MCAssembler.cpp
965 ${LLVM_DIR}/lib/MC/MCCodeEmitter.cpp
966 ${LLVM_DIR}/lib/MC/MCCodePadder.cpp
967 ${LLVM_DIR}/lib/MC/MCCodeView.cpp
968 ${LLVM_DIR}/lib/MC/MCContext.cpp
969 ${LLVM_DIR}/lib/MC/MCDisassembler/MCRelocationInfo.cpp
970 ${LLVM_DIR}/lib/MC/MCDwarf.cpp
971 ${LLVM_DIR}/lib/MC/MCELFObjectTargetWriter.cpp
972 ${LLVM_DIR}/lib/MC/MCELFStreamer.cpp
973 ${LLVM_DIR}/lib/MC/MCExpr.cpp
974 ${LLVM_DIR}/lib/MC/MCFragment.cpp
975 ${LLVM_DIR}/lib/MC/MCInst.cpp
976 ${LLVM_DIR}/lib/MC/MCInstPrinter.cpp
977 ${LLVM_DIR}/lib/MC/MCInstrAnalysis.cpp
978 ${LLVM_DIR}/lib/MC/MCInstrDesc.cpp
979 ${LLVM_DIR}/lib/MC/MCLinkerOptimizationHint.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400980 ${LLVM_DIR}/lib/MC/MCMachObjectTargetWriter.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +0100981 ${LLVM_DIR}/lib/MC/MCMachOStreamer.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -0400982 ${LLVM_DIR}/lib/MC/MCNullStreamer.cpp
983 ${LLVM_DIR}/lib/MC/MCObjectFileInfo.cpp
984 ${LLVM_DIR}/lib/MC/MCObjectStreamer.cpp
985 ${LLVM_DIR}/lib/MC/MCObjectWriter.cpp
986 ${LLVM_DIR}/lib/MC/MCParser/AsmLexer.cpp
987 ${LLVM_DIR}/lib/MC/MCParser/AsmParser.cpp
988 ${LLVM_DIR}/lib/MC/MCParser/COFFAsmParser.cpp
989 ${LLVM_DIR}/lib/MC/MCParser/DarwinAsmParser.cpp
990 ${LLVM_DIR}/lib/MC/MCParser/ELFAsmParser.cpp
991 ${LLVM_DIR}/lib/MC/MCParser/MCAsmLexer.cpp
992 ${LLVM_DIR}/lib/MC/MCParser/MCAsmParser.cpp
993 ${LLVM_DIR}/lib/MC/MCParser/MCAsmParserExtension.cpp
994 ${LLVM_DIR}/lib/MC/MCParser/MCTargetAsmParser.cpp
995 ${LLVM_DIR}/lib/MC/MCRegisterInfo.cpp
996 ${LLVM_DIR}/lib/MC/MCSchedule.cpp
997 ${LLVM_DIR}/lib/MC/MCSection.cpp
998 ${LLVM_DIR}/lib/MC/MCSectionCOFF.cpp
999 ${LLVM_DIR}/lib/MC/MCSectionELF.cpp
1000 ${LLVM_DIR}/lib/MC/MCSectionMachO.cpp
1001 ${LLVM_DIR}/lib/MC/MCSectionWasm.cpp
1002 ${LLVM_DIR}/lib/MC/MCStreamer.cpp
1003 ${LLVM_DIR}/lib/MC/MCSubtargetInfo.cpp
1004 ${LLVM_DIR}/lib/MC/MCSymbol.cpp
1005 ${LLVM_DIR}/lib/MC/MCSymbolELF.cpp
1006 ${LLVM_DIR}/lib/MC/MCTargetOptions.cpp
1007 ${LLVM_DIR}/lib/MC/MCValue.cpp
1008 ${LLVM_DIR}/lib/MC/MCWasmStreamer.cpp
1009 ${LLVM_DIR}/lib/MC/MCWin64EH.cpp
1010 ${LLVM_DIR}/lib/MC/MCWinCOFFStreamer.cpp
1011 ${LLVM_DIR}/lib/MC/MCWinEH.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001012 ${LLVM_DIR}/lib/MC/StringTableBuilder.cpp
1013 ${LLVM_DIR}/lib/MC/SubtargetFeature.cpp
1014 ${LLVM_DIR}/lib/MC/WasmObjectWriter.cpp
1015 ${LLVM_DIR}/lib/MC/WinCOFFObjectWriter.cpp
1016 ${LLVM_DIR}/lib/Object/Archive.cpp
1017 ${LLVM_DIR}/lib/Object/Binary.cpp
1018 ${LLVM_DIR}/lib/Object/COFFObjectFile.cpp
1019 ${LLVM_DIR}/lib/Object/ELF.cpp
1020 ${LLVM_DIR}/lib/Object/ELFObjectFile.cpp
1021 ${LLVM_DIR}/lib/Object/Error.cpp
1022 ${LLVM_DIR}/lib/Object/IRObjectFile.cpp
1023 ${LLVM_DIR}/lib/Object/IRSymtab.cpp
1024 ${LLVM_DIR}/lib/Object/MachOObjectFile.cpp
1025 ${LLVM_DIR}/lib/Object/MachOUniversal.cpp
1026 ${LLVM_DIR}/lib/Object/ModuleSymbolTable.cpp
1027 ${LLVM_DIR}/lib/Object/ObjectFile.cpp
1028 ${LLVM_DIR}/lib/Object/RecordStreamer.cpp
1029 ${LLVM_DIR}/lib/Object/SymbolicFile.cpp
1030 ${LLVM_DIR}/lib/Object/WasmObjectFile.cpp
1031 ${LLVM_DIR}/lib/Object/WindowsResource.cpp
1032 ${LLVM_DIR}/lib/ProfileData/InstrProf.cpp
1033 ${LLVM_DIR}/lib/Support/APFloat.cpp
1034 ${LLVM_DIR}/lib/Support/APInt.cpp
Nicolas Capens8c7da802019-04-29 11:52:35 -04001035 ${LLVM_DIR}/lib/Support/APSInt.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001036 ${LLVM_DIR}/lib/Support/ARMAttributeParser.cpp
1037 ${LLVM_DIR}/lib/Support/ARMBuildAttrs.cpp
Colin Samplesf63a3ab2019-06-13 12:53:09 -04001038 ${LLVM_DIR}/lib/Support/Atomic.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001039 ${LLVM_DIR}/lib/Support/BinaryStreamError.cpp
1040 ${LLVM_DIR}/lib/Support/BinaryStreamReader.cpp
1041 ${LLVM_DIR}/lib/Support/BinaryStreamRef.cpp
1042 ${LLVM_DIR}/lib/Support/BinaryStreamWriter.cpp
1043 ${LLVM_DIR}/lib/Support/BlockFrequency.cpp
1044 ${LLVM_DIR}/lib/Support/BranchProbability.cpp
1045 ${LLVM_DIR}/lib/Support/Chrono.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001046 ${LLVM_DIR}/lib/Support/circular_raw_ostream.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001047 ${LLVM_DIR}/lib/Support/CodeGenCoverage.cpp
1048 ${LLVM_DIR}/lib/Support/CommandLine.cpp
1049 ${LLVM_DIR}/lib/Support/Compression.cpp
1050 ${LLVM_DIR}/lib/Support/ConvertUTF.cpp
1051 ${LLVM_DIR}/lib/Support/ConvertUTFWrapper.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001052 ${LLVM_DIR}/lib/Support/DataExtractor.cpp
1053 ${LLVM_DIR}/lib/Support/Debug.cpp
1054 ${LLVM_DIR}/lib/Support/DebugCounter.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001055 ${LLVM_DIR}/lib/Support/DJB.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001056 ${LLVM_DIR}/lib/Support/DynamicLibrary.cpp
1057 ${LLVM_DIR}/lib/Support/Errno.cpp
1058 ${LLVM_DIR}/lib/Support/Error.cpp
1059 ${LLVM_DIR}/lib/Support/ErrorHandling.cpp
1060 ${LLVM_DIR}/lib/Support/FoldingSet.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001061 ${LLVM_DIR}/lib/Support/FormattedStream.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001062 ${LLVM_DIR}/lib/Support/FormatVariadic.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001063 ${LLVM_DIR}/lib/Support/GraphWriter.cpp
1064 ${LLVM_DIR}/lib/Support/Hashing.cpp
1065 ${LLVM_DIR}/lib/Support/Host.cpp
1066 ${LLVM_DIR}/lib/Support/IntEqClasses.cpp
1067 ${LLVM_DIR}/lib/Support/IntervalMap.cpp
1068 ${LLVM_DIR}/lib/Support/JamCRC.cpp
1069 ${LLVM_DIR}/lib/Support/KnownBits.cpp
1070 ${LLVM_DIR}/lib/Support/LEB128.cpp
1071 ${LLVM_DIR}/lib/Support/LineIterator.cpp
1072 ${LLVM_DIR}/lib/Support/Locale.cpp
1073 ${LLVM_DIR}/lib/Support/LowLevelType.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001074 ${LLVM_DIR}/lib/Support/ManagedStatic.cpp
1075 ${LLVM_DIR}/lib/Support/MathExtras.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001076 ${LLVM_DIR}/lib/Support/MD5.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001077 ${LLVM_DIR}/lib/Support/Memory.cpp
1078 ${LLVM_DIR}/lib/Support/MemoryBuffer.cpp
1079 ${LLVM_DIR}/lib/Support/Mutex.cpp
1080 ${LLVM_DIR}/lib/Support/NativeFormatting.cpp
1081 ${LLVM_DIR}/lib/Support/Path.cpp
1082 ${LLVM_DIR}/lib/Support/PrettyStackTrace.cpp
1083 ${LLVM_DIR}/lib/Support/Process.cpp
1084 ${LLVM_DIR}/lib/Support/Program.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001085 ${LLVM_DIR}/lib/Support/RandomNumberGenerator.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001086 ${LLVM_DIR}/lib/Support/raw_ostream.cpp
1087 ${LLVM_DIR}/lib/Support/regcomp.c
1088 ${LLVM_DIR}/lib/Support/regerror.c
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001089 ${LLVM_DIR}/lib/Support/Regex.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001090 ${LLVM_DIR}/lib/Support/regexec.c
1091 ${LLVM_DIR}/lib/Support/regfree.c
1092 ${LLVM_DIR}/lib/Support/regstrlcpy.c
1093 ${LLVM_DIR}/lib/Support/RWMutex.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001094 ${LLVM_DIR}/lib/Support/ScaledNumber.cpp
1095 ${LLVM_DIR}/lib/Support/ScopedPrinter.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001096 ${LLVM_DIR}/lib/Support/SHA1.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001097 ${LLVM_DIR}/lib/Support/Signals.cpp
1098 ${LLVM_DIR}/lib/Support/SmallPtrSet.cpp
1099 ${LLVM_DIR}/lib/Support/SmallVector.cpp
1100 ${LLVM_DIR}/lib/Support/SourceMgr.cpp
1101 ${LLVM_DIR}/lib/Support/Statistic.cpp
1102 ${LLVM_DIR}/lib/Support/StringExtras.cpp
1103 ${LLVM_DIR}/lib/Support/StringMap.cpp
1104 ${LLVM_DIR}/lib/Support/StringRef.cpp
1105 ${LLVM_DIR}/lib/Support/StringSaver.cpp
1106 ${LLVM_DIR}/lib/Support/TargetParser.cpp
1107 ${LLVM_DIR}/lib/Support/TargetRegistry.cpp
1108 ${LLVM_DIR}/lib/Support/Threading.cpp
1109 ${LLVM_DIR}/lib/Support/Timer.cpp
1110 ${LLVM_DIR}/lib/Support/ToolOutputFile.cpp
1111 ${LLVM_DIR}/lib/Support/Triple.cpp
1112 ${LLVM_DIR}/lib/Support/Twine.cpp
1113 ${LLVM_DIR}/lib/Support/Unicode.cpp
1114 ${LLVM_DIR}/lib/Support/UnicodeCaseFold.cpp
1115 ${LLVM_DIR}/lib/Support/Valgrind.cpp
1116 ${LLVM_DIR}/lib/Support/YAMLParser.cpp
1117 ${LLVM_DIR}/lib/Support/YAMLTraits.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001118 ${LLVM_DIR}/lib/Target/TargetLoweringObjectFile.cpp
1119 ${LLVM_DIR}/lib/Target/TargetMachine.cpp
Ben Clayton1c82c7b2019-04-30 12:49:27 +01001120 ${LLVM_DIR}/lib/Transforms/Coroutines/CoroCleanup.cpp
1121 ${LLVM_DIR}/lib/Transforms/Coroutines/CoroEarly.cpp
1122 ${LLVM_DIR}/lib/Transforms/Coroutines/CoroElide.cpp
1123 ${LLVM_DIR}/lib/Transforms/Coroutines/CoroFrame.cpp
1124 ${LLVM_DIR}/lib/Transforms/Coroutines/CoroSplit.cpp
1125 ${LLVM_DIR}/lib/Transforms/Coroutines/Coroutines.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001126 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineAddSub.cpp
1127 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
1128 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCalls.cpp
1129 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCasts.cpp
1130 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineCompares.cpp
1131 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
1132 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
1133 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombinePHI.cpp
1134 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineSelect.cpp
1135 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineShifts.cpp
1136 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
1137 ${LLVM_DIR}/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
1138 ${LLVM_DIR}/lib/Transforms/InstCombine/InstructionCombining.cpp
Ben Clayton1c82c7b2019-04-30 12:49:27 +01001139 ${LLVM_DIR}/lib/Transforms/IPO/BarrierNoopPass.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001140 ${LLVM_DIR}/lib/Transforms/Scalar/ADCE.cpp
1141 ${LLVM_DIR}/lib/Transforms/Scalar/ConstantHoisting.cpp
1142 ${LLVM_DIR}/lib/Transforms/Scalar/DeadStoreElimination.cpp
Ben Clayton1c82c7b2019-04-30 12:49:27 +01001143 ${LLVM_DIR}/lib/Transforms/Scalar/EarlyCSE.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001144 ${LLVM_DIR}/lib/Transforms/Scalar/GVN.cpp
1145 ${LLVM_DIR}/lib/Transforms/Scalar/LICM.cpp
Colin Samplesf63a3ab2019-06-13 12:53:09 -04001146 ${LLVM_DIR}/lib/Transforms/Scalar/LoopDataPrefetch.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001147 ${LLVM_DIR}/lib/Transforms/Scalar/LoopStrengthReduce.cpp
1148 ${LLVM_DIR}/lib/Transforms/Scalar/MergeICmps.cpp
1149 ${LLVM_DIR}/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
1150 ${LLVM_DIR}/lib/Transforms/Scalar/Reassociate.cpp
1151 ${LLVM_DIR}/lib/Transforms/Scalar/SCCP.cpp
Colin Samplesf63a3ab2019-06-13 12:53:09 -04001152 ${LLVM_DIR}/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001153 ${LLVM_DIR}/lib/Transforms/Scalar/SimplifyCFGPass.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001154 ${LLVM_DIR}/lib/Transforms/Scalar/SROA.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001155 ${LLVM_DIR}/lib/Transforms/Utils/BasicBlockUtils.cpp
1156 ${LLVM_DIR}/lib/Transforms/Utils/BreakCriticalEdges.cpp
1157 ${LLVM_DIR}/lib/Transforms/Utils/BuildLibCalls.cpp
1158 ${LLVM_DIR}/lib/Transforms/Utils/BypassSlowDivision.cpp
1159 ${LLVM_DIR}/lib/Transforms/Utils/CloneFunction.cpp
1160 ${LLVM_DIR}/lib/Transforms/Utils/DemoteRegToStack.cpp
1161 ${LLVM_DIR}/lib/Transforms/Utils/EntryExitInstrumenter.cpp
1162 ${LLVM_DIR}/lib/Transforms/Utils/EscapeEnumerator.cpp
1163 ${LLVM_DIR}/lib/Transforms/Utils/InlineFunction.cpp
1164 ${LLVM_DIR}/lib/Transforms/Utils/LCSSA.cpp
1165 ${LLVM_DIR}/lib/Transforms/Utils/Local.cpp
1166 ${LLVM_DIR}/lib/Transforms/Utils/LoopSimplify.cpp
1167 ${LLVM_DIR}/lib/Transforms/Utils/LoopUtils.cpp
1168 ${LLVM_DIR}/lib/Transforms/Utils/LowerInvoke.cpp
1169 ${LLVM_DIR}/lib/Transforms/Utils/OrderedInstructions.cpp
1170 ${LLVM_DIR}/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001171 ${LLVM_DIR}/lib/Transforms/Utils/SimplifyCFG.cpp
1172 ${LLVM_DIR}/lib/Transforms/Utils/SimplifyLibCalls.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001173 ${LLVM_DIR}/lib/Transforms/Utils/SSAUpdater.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001174 ${LLVM_DIR}/lib/Transforms/Utils/SymbolRewriter.cpp
Nicolas Capens9ac24a92019-04-29 10:45:56 -04001175 ${LLVM_DIR}/lib/Transforms/Utils/ValueMapper.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001176 ${LLVM_DIR}/lib/Transforms/Utils/VNCoercion.cpp
Ben Clayton1c82c7b2019-04-30 12:49:27 +01001177 ${LLVM_DIR}/../stubs/Stubs.cpp
Logan Chien0eedc8c2018-08-21 09:34:28 +08001178)
1179
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001180if(ARCH STREQUAL "x86" OR ARCH STREQUAL "x86_64")
1181 list(APPEND LLVM_LIST
1182 ${LLVM_DIR}/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp
1183 ${LLVM_DIR}/lib/Target/X86/AsmParser/X86AsmParser.cpp
1184 ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
1185 ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86InstComments.cpp
1186 ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86InstPrinterCommon.cpp
1187 ${LLVM_DIR}/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
1188 ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
1189 ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001190 ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001191 ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
1192 ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
1193 ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001194 ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
1195 ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
1196 ${LLVM_DIR}/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
1197 ${LLVM_DIR}/lib/Target/X86/ShadowCallStack.cpp
1198 ${LLVM_DIR}/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
1199 ${LLVM_DIR}/lib/Target/X86/Utils/X86ShuffleDecode.cpp
1200 ${LLVM_DIR}/lib/Target/X86/X86AsmPrinter.cpp
1201 ${LLVM_DIR}/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
1202 ${LLVM_DIR}/lib/Target/X86/X86CallFrameOptimization.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001203 ${LLVM_DIR}/lib/Target/X86/X86CallingConv.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001204 ${LLVM_DIR}/lib/Target/X86/X86CallLowering.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001205 ${LLVM_DIR}/lib/Target/X86/X86CmovConversion.cpp
1206 ${LLVM_DIR}/lib/Target/X86/X86DomainReassignment.cpp
1207 ${LLVM_DIR}/lib/Target/X86/X86EvexToVex.cpp
1208 ${LLVM_DIR}/lib/Target/X86/X86ExpandPseudo.cpp
1209 ${LLVM_DIR}/lib/Target/X86/X86FastISel.cpp
1210 ${LLVM_DIR}/lib/Target/X86/X86FixupBWInsts.cpp
1211 ${LLVM_DIR}/lib/Target/X86/X86FixupLEAs.cpp
1212 ${LLVM_DIR}/lib/Target/X86/X86FixupSetCC.cpp
1213 ${LLVM_DIR}/lib/Target/X86/X86FlagsCopyLowering.cpp
1214 ${LLVM_DIR}/lib/Target/X86/X86FloatingPoint.cpp
1215 ${LLVM_DIR}/lib/Target/X86/X86FrameLowering.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001216 ${LLVM_DIR}/lib/Target/X86/X86IndirectBranchTracking.cpp
1217 ${LLVM_DIR}/lib/Target/X86/X86InstrFMA3Info.cpp
1218 ${LLVM_DIR}/lib/Target/X86/X86InstrFoldTables.cpp
1219 ${LLVM_DIR}/lib/Target/X86/X86InstrInfo.cpp
1220 ${LLVM_DIR}/lib/Target/X86/X86InstructionSelector.cpp
1221 ${LLVM_DIR}/lib/Target/X86/X86InterleavedAccess.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001222 ${LLVM_DIR}/lib/Target/X86/X86ISelDAGToDAG.cpp
1223 ${LLVM_DIR}/lib/Target/X86/X86ISelLowering.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001224 ${LLVM_DIR}/lib/Target/X86/X86LegalizerInfo.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001225 ${LLVM_DIR}/lib/Target/X86/X86MachineFunctionInfo.cpp
1226 ${LLVM_DIR}/lib/Target/X86/X86MacroFusion.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001227 ${LLVM_DIR}/lib/Target/X86/X86MCInstLower.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001228 ${LLVM_DIR}/lib/Target/X86/X86OptimizeLEAs.cpp
1229 ${LLVM_DIR}/lib/Target/X86/X86PadShortFunction.cpp
1230 ${LLVM_DIR}/lib/Target/X86/X86RegisterBankInfo.cpp
1231 ${LLVM_DIR}/lib/Target/X86/X86RegisterInfo.cpp
1232 ${LLVM_DIR}/lib/Target/X86/X86RetpolineThunks.cpp
1233 ${LLVM_DIR}/lib/Target/X86/X86SelectionDAGInfo.cpp
1234 ${LLVM_DIR}/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
1235 ${LLVM_DIR}/lib/Target/X86/X86SpeculativeLoadHardening.cpp
1236 ${LLVM_DIR}/lib/Target/X86/X86Subtarget.cpp
1237 ${LLVM_DIR}/lib/Target/X86/X86TargetMachine.cpp
1238 ${LLVM_DIR}/lib/Target/X86/X86TargetObjectFile.cpp
1239 ${LLVM_DIR}/lib/Target/X86/X86TargetTransformInfo.cpp
1240 ${LLVM_DIR}/lib/Target/X86/X86VZeroUpper.cpp
1241 ${LLVM_DIR}/lib/Target/X86/X86WinAllocaExpander.cpp
1242 ${LLVM_DIR}/lib/Target/X86/X86WinEHState.cpp
1243 )
1244elseif(ARCH STREQUAL "mipsel" OR ARCH STREQUAL "mips64el")
1245 list(APPEND LLVM_LIST
1246 ${LLVM_DIR}/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
1247 ${LLVM_DIR}/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp
1248 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp
1249 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp
1250 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001251 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001252 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp
1253 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp
1254 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001255 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001256 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001257 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001258 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp
1259 ${LLVM_DIR}/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001260 ${LLVM_DIR}/lib/Target/Mips/MicroMipsSizeReduction.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001261 ${LLVM_DIR}/lib/Target/Mips/Mips16FrameLowering.cpp
1262 ${LLVM_DIR}/lib/Target/Mips/Mips16HardFloat.cpp
1263 ${LLVM_DIR}/lib/Target/Mips/Mips16HardFloatInfo.cpp
1264 ${LLVM_DIR}/lib/Target/Mips/Mips16InstrInfo.cpp
1265 ${LLVM_DIR}/lib/Target/Mips/Mips16ISelDAGToDAG.cpp
1266 ${LLVM_DIR}/lib/Target/Mips/Mips16ISelLowering.cpp
1267 ${LLVM_DIR}/lib/Target/Mips/Mips16RegisterInfo.cpp
1268 ${LLVM_DIR}/lib/Target/Mips/MipsAnalyzeImmediate.cpp
1269 ${LLVM_DIR}/lib/Target/Mips/MipsAsmPrinter.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001270 ${LLVM_DIR}/lib/Target/Mips/MipsBranchExpansion.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001271 ${LLVM_DIR}/lib/Target/Mips/MipsCallLowering.cpp
1272 ${LLVM_DIR}/lib/Target/Mips/MipsCCState.cpp
1273 ${LLVM_DIR}/lib/Target/Mips/MipsConstantIslandPass.cpp
1274 ${LLVM_DIR}/lib/Target/Mips/MipsDelaySlotFiller.cpp
1275 ${LLVM_DIR}/lib/Target/Mips/MipsExpandPseudo.cpp
1276 ${LLVM_DIR}/lib/Target/Mips/MipsFastISel.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001277 ${LLVM_DIR}/lib/Target/Mips/MipsFrameLowering.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001278 ${LLVM_DIR}/lib/Target/Mips/MipsInstrInfo.cpp
1279 ${LLVM_DIR}/lib/Target/Mips/MipsInstructionSelector.cpp
1280 ${LLVM_DIR}/lib/Target/Mips/MipsISelDAGToDAG.cpp
1281 ${LLVM_DIR}/lib/Target/Mips/MipsISelLowering.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001282 ${LLVM_DIR}/lib/Target/Mips/MipsLegalizerInfo.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001283 ${LLVM_DIR}/lib/Target/Mips/MipsMachineFunction.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001284 ${LLVM_DIR}/lib/Target/Mips/MipsMCInstLower.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001285 ${LLVM_DIR}/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp
1286 ${LLVM_DIR}/lib/Target/Mips/MipsOptimizePICCall.cpp
1287 ${LLVM_DIR}/lib/Target/Mips/MipsOs16.cpp
1288 ${LLVM_DIR}/lib/Target/Mips/MipsRegisterBankInfo.cpp
1289 ${LLVM_DIR}/lib/Target/Mips/MipsRegisterInfo.cpp
1290 ${LLVM_DIR}/lib/Target/Mips/MipsSEFrameLowering.cpp
1291 ${LLVM_DIR}/lib/Target/Mips/MipsSEInstrInfo.cpp
1292 ${LLVM_DIR}/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
1293 ${LLVM_DIR}/lib/Target/Mips/MipsSEISelLowering.cpp
1294 ${LLVM_DIR}/lib/Target/Mips/MipsSERegisterInfo.cpp
1295 ${LLVM_DIR}/lib/Target/Mips/MipsSubtarget.cpp
1296 ${LLVM_DIR}/lib/Target/Mips/MipsTargetMachine.cpp
1297 ${LLVM_DIR}/lib/Target/Mips/MipsTargetObjectFile.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001298 ${LLVM_DIR}/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp
1299 )
1300elseif(ARCH STREQUAL "aarch64")
1301 list(APPEND LLVM_LIST
Ben Clayton77d42cd2019-06-11 16:19:16 +01001302 ${LLVM_DIR}/lib/CodeGen/GlobalMerge.cpp
1303 ${LLVM_DIR}/lib/CodeGen/RegAllocPBQP.cpp
1304 ${LLVM_DIR}/lib/MC/ConstantPools.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001305 ${LLVM_DIR}/lib/Target/AArch64/AArch64A53Fix835769.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001306 ${LLVM_DIR}/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
1307 ${LLVM_DIR}/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp
1308 ${LLVM_DIR}/lib/Target/AArch64/AArch64AsmPrinter.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001309 ${LLVM_DIR}/lib/Target/AArch64/AArch64CallLowering.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001310 ${LLVM_DIR}/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
1311 ${LLVM_DIR}/lib/Target/AArch64/AArch64CollectLOH.cpp
1312 ${LLVM_DIR}/lib/Target/AArch64/AArch64CondBrTuning.cpp
1313 ${LLVM_DIR}/lib/Target/AArch64/AArch64ConditionalCompares.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001314 ${LLVM_DIR}/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001315 ${LLVM_DIR}/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
1316 ${LLVM_DIR}/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
1317 ${LLVM_DIR}/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
1318 ${LLVM_DIR}/lib/Target/AArch64/AArch64FastISel.cpp
1319 ${LLVM_DIR}/lib/Target/AArch64/AArch64FrameLowering.cpp
1320 ${LLVM_DIR}/lib/Target/AArch64/AArch64InstrInfo.cpp
1321 ${LLVM_DIR}/lib/Target/AArch64/AArch64InstructionSelector.cpp
1322 ${LLVM_DIR}/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
1323 ${LLVM_DIR}/lib/Target/AArch64/AArch64ISelLowering.cpp
1324 ${LLVM_DIR}/lib/Target/AArch64/AArch64LegalizerInfo.cpp
1325 ${LLVM_DIR}/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
1326 ${LLVM_DIR}/lib/Target/AArch64/AArch64MacroFusion.cpp
1327 ${LLVM_DIR}/lib/Target/AArch64/AArch64MCInstLower.cpp
1328 ${LLVM_DIR}/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp
1329 ${LLVM_DIR}/lib/Target/AArch64/AArch64PromoteConstant.cpp
1330 ${LLVM_DIR}/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
1331 ${LLVM_DIR}/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
1332 ${LLVM_DIR}/lib/Target/AArch64/AArch64RegisterInfo.cpp
1333 ${LLVM_DIR}/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
1334 ${LLVM_DIR}/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
1335 ${LLVM_DIR}/lib/Target/AArch64/AArch64StorePairSuppress.cpp
1336 ${LLVM_DIR}/lib/Target/AArch64/AArch64Subtarget.cpp
1337 ${LLVM_DIR}/lib/Target/AArch64/AArch64TargetMachine.cpp
1338 ${LLVM_DIR}/lib/Target/AArch64/AArch64TargetObjectFile.cpp
1339 ${LLVM_DIR}/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
1340 ${LLVM_DIR}/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001341 ${LLVM_DIR}/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
1342 ${LLVM_DIR}/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001343 ${LLVM_DIR}/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001344 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
1345 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
1346 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
1347 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
1348 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
1349 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp
1350 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
1351 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
1352 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
1353 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
1354 ${LLVM_DIR}/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
1355 ${LLVM_DIR}/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
1356 ${LLVM_DIR}/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
Ben Clayton77d42cd2019-06-11 16:19:16 +01001357 ${LLVM_DIR}/lib/Transforms/Scalar/LoopDataPrefetch.cpp
1358 ${LLVM_DIR}/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001359 )
1360elseif(ARCH STREQUAL "arm")
1361 list(APPEND LLVM_LIST
Ben Claytonc8740e02019-06-11 16:16:48 +01001362 ${LLVM_DIR}/lib/Target/ARM/A15SDOptimizer.cpp
1363 ${LLVM_DIR}/lib/Target/ARM/ARMAsmPrinter.cpp
1364 ${LLVM_DIR}/lib/Target/ARM/ARMBaseInstrInfo.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001365 ${LLVM_DIR}/lib/Target/ARM/ARMBaseRegisterInfo.cpp
1366 ${LLVM_DIR}/lib/Target/ARM/ARMCallLowering.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001367 ${LLVM_DIR}/lib/Target/ARM/ARMCodeGenPrepare.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001368 ${LLVM_DIR}/lib/Target/ARM/ARMComputeBlockSize.cpp
1369 ${LLVM_DIR}/lib/Target/ARM/ARMConstantIslandPass.cpp
1370 ${LLVM_DIR}/lib/Target/ARM/ARMConstantPoolValue.cpp
1371 ${LLVM_DIR}/lib/Target/ARM/ARMExpandPseudoInsts.cpp
1372 ${LLVM_DIR}/lib/Target/ARM/ARMFastISel.cpp
1373 ${LLVM_DIR}/lib/Target/ARM/ARMFrameLowering.cpp
1374 ${LLVM_DIR}/lib/Target/ARM/ARMHazardRecognizer.cpp
1375 ${LLVM_DIR}/lib/Target/ARM/ARMInstrInfo.cpp
1376 ${LLVM_DIR}/lib/Target/ARM/ARMInstructionSelector.cpp
1377 ${LLVM_DIR}/lib/Target/ARM/ARMISelDAGToDAG.cpp
1378 ${LLVM_DIR}/lib/Target/ARM/ARMISelLowering.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001379 ${LLVM_DIR}/lib/Target/ARM/ARMLegalizerInfo.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001380 ${LLVM_DIR}/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
1381 ${LLVM_DIR}/lib/Target/ARM/ARMMachineFunctionInfo.cpp
1382 ${LLVM_DIR}/lib/Target/ARM/ARMMacroFusion.cpp
1383 ${LLVM_DIR}/lib/Target/ARM/ARMMCInstLower.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001384 ${LLVM_DIR}/lib/Target/ARM/ARMOptimizeBarriersPass.cpp
Ben Claytonc8740e02019-06-11 16:16:48 +01001385 ${LLVM_DIR}/lib/Target/ARM/ARMParallelDSP.cpp
1386 ${LLVM_DIR}/lib/Target/ARM/ARMRegisterBankInfo.cpp
1387 ${LLVM_DIR}/lib/Target/ARM/ARMRegisterInfo.cpp
1388 ${LLVM_DIR}/lib/Target/ARM/ARMSelectionDAGInfo.cpp
1389 ${LLVM_DIR}/lib/Target/ARM/ARMSubtarget.cpp
1390 ${LLVM_DIR}/lib/Target/ARM/ARMTargetMachine.cpp
1391 ${LLVM_DIR}/lib/Target/ARM/ARMTargetObjectFile.cpp
1392 ${LLVM_DIR}/lib/Target/ARM/ARMTargetTransformInfo.cpp
1393 ${LLVM_DIR}/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
1394 ${LLVM_DIR}/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
1395 ${LLVM_DIR}/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
1396 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
1397 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
1398 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
1399 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
1400 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp
1401 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
1402 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
1403 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp
1404 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
1405 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
1406 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp
1407 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
1408 ${LLVM_DIR}/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
1409 ${LLVM_DIR}/lib/Target/ARM/MLxExpansionPass.cpp
1410 ${LLVM_DIR}/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
1411 ${LLVM_DIR}/lib/Target/ARM/Thumb1FrameLowering.cpp
1412 ${LLVM_DIR}/lib/Target/ARM/Thumb1InstrInfo.cpp
1413 ${LLVM_DIR}/lib/Target/ARM/Thumb2InstrInfo.cpp
1414 ${LLVM_DIR}/lib/Target/ARM/Thumb2ITBlockPass.cpp
1415 ${LLVM_DIR}/lib/Target/ARM/Thumb2SizeReduction.cpp
1416 ${LLVM_DIR}/lib/Target/ARM/ThumbRegisterInfo.cpp
1417 ${LLVM_DIR}/lib/Target/ARM/Utils/ARMBaseInfo.cpp
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001418 )
Colin Samplesf63a3ab2019-06-13 12:53:09 -04001419elseif(ARCH STREQUAL "ppc64le")
1420 list(APPEND LLVM_LIST
1421 ${LLVM_DIR}/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
1422 ${LLVM_DIR}/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp
1423 ${LLVM_DIR}/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
1424 ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
1425 ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
1426 ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
1427 ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
1428 ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
1429 ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp
1430 ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
1431 ${LLVM_DIR}/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.cpp
1432 ${LLVM_DIR}/lib/Target/PowerPC/PPCAsmPrinter.cpp
1433 ${LLVM_DIR}/lib/Target/PowerPC/PPCBoolRetToInt.cpp
1434 ${LLVM_DIR}/lib/Target/PowerPC/PPCBranchCoalescing.cpp
1435 ${LLVM_DIR}/lib/Target/PowerPC/PPCBranchSelector.cpp
1436 ${LLVM_DIR}/lib/Target/PowerPC/PPCCCState.cpp
1437 ${LLVM_DIR}/lib/Target/PowerPC/PPCCTRLoops.cpp
1438 ${LLVM_DIR}/lib/Target/PowerPC/PPCEarlyReturn.cpp
1439 ${LLVM_DIR}/lib/Target/PowerPC/PPCExpandISEL.cpp
1440 ${LLVM_DIR}/lib/Target/PowerPC/PPCFastISel.cpp
1441 ${LLVM_DIR}/lib/Target/PowerPC/PPCFrameLowering.cpp
1442 ${LLVM_DIR}/lib/Target/PowerPC/PPCHazardRecognizers.cpp
1443 ${LLVM_DIR}/lib/Target/PowerPC/PPCInstrInfo.cpp
1444 ${LLVM_DIR}/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
1445 ${LLVM_DIR}/lib/Target/PowerPC/PPCISelLowering.cpp
1446 ${LLVM_DIR}/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
1447 ${LLVM_DIR}/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp
1448 ${LLVM_DIR}/lib/Target/PowerPC/PPCMCInstLower.cpp
1449 ${LLVM_DIR}/lib/Target/PowerPC/PPCMIPeephole.cpp
1450 ${LLVM_DIR}/lib/Target/PowerPC/PPCPreEmitPeephole.cpp
1451 ${LLVM_DIR}/lib/Target/PowerPC/PPCQPXLoadSplat.cpp
1452 ${LLVM_DIR}/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
1453 ${LLVM_DIR}/lib/Target/PowerPC/PPCRegisterInfo.cpp
1454 ${LLVM_DIR}/lib/Target/PowerPC/PPCSubtarget.cpp
1455 ${LLVM_DIR}/lib/Target/PowerPC/PPCTargetMachine.cpp
1456 ${LLVM_DIR}/lib/Target/PowerPC/PPCTargetObjectFile.cpp
1457 ${LLVM_DIR}/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
1458 ${LLVM_DIR}/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
1459 ${LLVM_DIR}/lib/Target/PowerPC/PPCTOCRegDeps.cpp
1460 ${LLVM_DIR}/lib/Target/PowerPC/PPCVSXCopy.cpp
1461 ${LLVM_DIR}/lib/Target/PowerPC/PPCVSXFMAMutate.cpp
1462 ${LLVM_DIR}/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp
1463 ${LLVM_DIR}/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
1464 )
Ben Claytonac07ed82019-03-26 14:17:41 +00001465endif()
1466
1467if(REACTOR_EMIT_DEBUG_INFO)
1468 list(APPEND LLVM_LIST
1469 ${LLVM_DIR}/lib/Demangle/ItaniumDemangle.cpp
1470 )
Ben Clayton1e8486b2020-01-22 17:01:52 +00001471endif()
Nicolas Capens7d0b8a32018-10-30 16:36:52 -04001472
Logan Chien0eedc8c2018-08-21 09:34:28 +08001473set(LLVM_INCLUDE_DIR "")
1474
1475if(WIN32)
Nicolas Capensd7a21cc2018-09-11 13:09:28 -04001476 list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/windows/include)
Logan Chien0eedc8c2018-08-21 09:34:28 +08001477elseif(LINUX)
1478 list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/linux/include)
Ben Claytonac07ed82019-03-26 14:17:41 +00001479 list(APPEND LIBBACKTRACE_INCLUDE_DIR ${LIBBACKTRACE_CONFIG_DIR}/linux/include)
Logan Chien0eedc8c2018-08-21 09:34:28 +08001480elseif(APPLE)
Nicolas Capens2337f062018-10-30 13:49:46 -04001481 list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/darwin/include)
Ben Claytonac07ed82019-03-26 14:17:41 +00001482 list(APPEND LIBBACKTRACE_INCLUDE_DIR ${LIBBACKTRACE_CONFIG_DIR}/darwin/include)
Stephen Whitee6ab01f2019-04-04 14:31:25 -04001483elseif(ANDROID)
1484 list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/android/include)
Ben Claytonac07ed82019-03-26 14:17:41 +00001485 list(APPEND LIBBACKTRACE_INCLUDE_DIR ${LIBBACKTRACE_CONFIG_DIR}/android/include)
Logan Chien0eedc8c2018-08-21 09:34:28 +08001486endif()
1487
1488list(APPEND LLVM_INCLUDE_DIR
1489 ${LLVM_DIR}/include
Logan Chien009fecb2018-08-21 15:14:16 +08001490 ${LLVM_DIR}/lib/Target/AArch64
1491 ${LLVM_DIR}/lib/Target/ARM
Gordana Cmiljanovic082dfec2018-10-19 11:36:15 +02001492 ${LLVM_DIR}/lib/Target/Mips
Colin Samplesf63a3ab2019-06-13 12:53:09 -04001493 ${LLVM_DIR}/lib/Target/PowerPC
Logan Chien0eedc8c2018-08-21 09:34:28 +08001494 ${LLVM_DIR}/lib/Target/X86
1495 ${LLVM_CONFIG_DIR}/common/include
1496 ${LLVM_CONFIG_DIR}/common/lib/IR
Logan Chien009fecb2018-08-21 15:14:16 +08001497 ${LLVM_CONFIG_DIR}/common/lib/Target/AArch64
1498 ${LLVM_CONFIG_DIR}/common/lib/Target/ARM
Gordana Cmiljanovic082dfec2018-10-19 11:36:15 +02001499 ${LLVM_CONFIG_DIR}/common/lib/Target/Mips
Colin Samplesf63a3ab2019-06-13 12:53:09 -04001500 ${LLVM_CONFIG_DIR}/common/lib/Target/PowerPC
Logan Chien0eedc8c2018-08-21 09:34:28 +08001501 ${LLVM_CONFIG_DIR}/common/lib/Target/X86
1502 ${LLVM_CONFIG_DIR}/common/lib/Transforms/InstCombine
1503)
1504
Ben Clayton81be8c62019-02-26 16:50:31 +00001505# Suppress known LLVM warnings
Ben Clayton4ceb77d2019-04-24 12:09:59 +01001506set(LLVM_COMPILE_OPTIONS)
Ben Clayton81be8c62019-02-26 16:50:31 +00001507if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
Ben Clayton4ceb77d2019-04-24 12:09:59 +01001508 list(APPEND LLVM_COMPILE_OPTIONS
Ben Clayton81be8c62019-02-26 16:50:31 +00001509 "-Wno-noexcept-type" # mangled name for ‘X’ will change in C++17 because the exception specification is part of a function type
1510 "-Wno-maybe-uninitialized" # ‘X’ may be used uninitialized in this function
1511 "-Wno-unused-but-set-variable" # variable ‘X’ set but not used
1512 )
Nicolas Capens6d874f02019-06-26 10:31:47 -04001513 if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8)
1514 list(APPEND LLVM_COMPILE_OPTIONS
1515 "-Wno-class-memaccess" # memset/memcmp used on non-trivial class object
Chris Forbes23742c02019-08-21 12:30:06 -07001516 "-Wno-attributes" # declared inline but not inline
Nicolas Capens6d874f02019-06-26 10:31:47 -04001517 )
1518 endif()
Ben Claytona5f07632020-02-04 11:43:25 +00001519 if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9)
1520 list(APPEND LLVM_COMPILE_OPTIONS
1521 "-Wno-init-list-lifetime" # assignment from temporary initializer_list does not extend the lifetime of the underlying array
1522 )
1523 endif()
Ben Claytonedd7d412019-04-14 08:41:27 -04001524elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
Antonio Maiorano5bce1f42019-05-10 16:03:49 -04001525 list(APPEND LLVM_COMPILE_OPTIONS
Ben Claytonedd7d412019-04-14 08:41:27 -04001526 "/wd4141" # 'inline': used more than once
1527 "/wd4146" # unary minus operator applied to unsigned type, result still unsigned
1528 "/wd4244" # 'X': conversion from 'uint64_t' to 'const unsigned int', possible loss of data
1529 "/wd4267" # 'X': conversion from 'size_t' to 'unsigned int', possible loss of data
1530 "/wd4291" # 'void X new(size_t,unsigned int,unsigned int)': no matching operator delete found; memory will not be freed if initialization throws an exception
1531 "/wd4319" # 'X': zero extending 'unsigned int' to 'uint64_t' of greater size
1532 "/wd4624" # 'X': destructor was implicitly defined as deleted
1533 "/wd4805" # 'X': unsafe mix of type 'unsigned int' and type 'bool' in operation
1534 "/wd4996" # 'X': Call to 'Y' with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct.
1535 )
Ben Clayton81be8c62019-02-26 16:50:31 +00001536endif()
Ben Clayton81be8c62019-02-26 16:50:31 +00001537
Nicolas Capens32a7dcd2020-03-12 00:35:14 -04001538add_library(llvm STATIC EXCLUDE_FROM_ALL ${LLVM_LIST})
Corentin Wallez0866b292015-12-09 13:49:40 -05001539set_target_properties(llvm PROPERTIES
1540 POSITION_INDEPENDENT_CODE 1
1541 INCLUDE_DIRECTORIES "${LLVM_INCLUDE_DIR}"
Ben Clayton4ceb77d2019-04-24 12:09:59 +01001542 COMPILE_OPTIONS "${LLVM_COMPILE_OPTIONS}"
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001543 COMPILE_DEFINITIONS "__STDC_CONSTANT_MACROS; __STDC_LIMIT_MACROS;"
Corentin Wallez0866b292015-12-09 13:49:40 -05001544 FOLDER "LLVM"
1545)
1546
Ben Clayton8f71f732019-02-01 09:38:45 +00001547# Add required libraries for LLVM
1548if(LINUX)
1549 target_link_libraries(llvm dl)
Ben Clayton1e8486b2020-01-22 17:01:52 +00001550endif()
Ben Clayton8f71f732019-02-01 09:38:45 +00001551
Antonio Maiorano8bce0672020-02-28 13:13:45 -05001552
1553###########################################################
1554# marl
1555###########################################################
1556if(BUILD_MARL)
1557 set(MARL_THIRD_PARTY_DIR ${THIRD_PARTY_DIR})
1558 add_subdirectory(third_party/marl)
1559endif()
1560
1561
1562###########################################################
1563# cppdap
1564###########################################################
1565if(SWIFTSHADER_BUILD_CPPDAP)
1566 set(CPPDAP_THIRD_PARTY_DIR ${THIRD_PARTY_DIR})
1567 add_subdirectory(${CPPDAP_DIR})
1568endif()
1569
1570
Corentin Wallez0866b292015-12-09 13:49:40 -05001571###########################################################
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001572# Subzero
1573###########################################################
1574
Nicolas Capens26690ed2017-03-31 10:34:20 -04001575if(${REACTOR_BACKEND} STREQUAL "Subzero")
1576 set(SUBZERO_LIST
1577 ${SUBZERO_DIR}/src/IceAssembler.cpp
1578 ${SUBZERO_DIR}/src/IceCfg.cpp
1579 ${SUBZERO_DIR}/src/IceCfgNode.cpp
1580 ${SUBZERO_DIR}/src/IceClFlags.cpp
1581 ${SUBZERO_DIR}/src/IceELFObjectWriter.cpp
1582 ${SUBZERO_DIR}/src/IceELFSection.cpp
1583 ${SUBZERO_DIR}/src/IceFixups.cpp
1584 ${SUBZERO_DIR}/src/IceGlobalContext.cpp
1585 ${SUBZERO_DIR}/src/IceGlobalInits.cpp
1586 ${SUBZERO_DIR}/src/IceInst.cpp
1587 ${SUBZERO_DIR}/src/IceInstrumentation.cpp
1588 ${SUBZERO_DIR}/src/IceIntrinsics.cpp
1589 ${SUBZERO_DIR}/src/IceLiveness.cpp
1590 ${SUBZERO_DIR}/src/IceLoopAnalyzer.cpp
1591 ${SUBZERO_DIR}/src/IceMangling.cpp
1592 ${SUBZERO_DIR}/src/IceMemory.cpp
1593 ${SUBZERO_DIR}/src/IceOperand.cpp
1594 ${SUBZERO_DIR}/src/IceRangeSpec.cpp
1595 ${SUBZERO_DIR}/src/IceRegAlloc.cpp
1596 ${SUBZERO_DIR}/src/IceRevision.cpp
1597 ${SUBZERO_DIR}/src/IceRNG.cpp
1598 ${SUBZERO_DIR}/src/IceSwitchLowering.cpp
1599 ${SUBZERO_DIR}/src/IceTargetLowering.cpp
Nicolas Capens26690ed2017-03-31 10:34:20 -04001600 ${SUBZERO_DIR}/src/IceThreading.cpp
1601 ${SUBZERO_DIR}/src/IceTimerTree.cpp
1602 ${SUBZERO_DIR}/src/IceTypes.cpp
1603 ${SUBZERO_DIR}/src/IceVariableSplitting.cpp
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001604 )
Nicolas Capens26690ed2017-03-31 10:34:20 -04001605
Nicolas Capens75753f92018-10-02 15:01:30 -04001606 # FIXME: Shouldn't depend on external source files directly.
1607 list(APPEND SUBZERO_LIST
1608 ${SOURCE_DIR}/Common/Memory.cpp
1609 )
1610
Nicolas Capens30cd7d42017-04-25 15:17:25 -04001611 if(ARCH STREQUAL "x86_64")
Nicolas Capens26690ed2017-03-31 10:34:20 -04001612 list(APPEND SUBZERO_LIST
Nicolas Capens30cd7d42017-04-25 15:17:25 -04001613 ${SUBZERO_DIR}/src/IceTargetLoweringX86.cpp
Nicolas Capens26690ed2017-03-31 10:34:20 -04001614 ${SUBZERO_DIR}/src/IceInstX8664.cpp
1615 ${SUBZERO_DIR}/src/IceTargetLoweringX8664.cpp
1616 )
1617 set(SUBZERO_TARGET X8664)
Nicolas Capens30cd7d42017-04-25 15:17:25 -04001618 elseif(ARCH STREQUAL "x86")
Nicolas Capens26690ed2017-03-31 10:34:20 -04001619 list(APPEND SUBZERO_LIST
Nicolas Capens30cd7d42017-04-25 15:17:25 -04001620 ${SUBZERO_DIR}/src/IceTargetLoweringX86.cpp
Nicolas Capens26690ed2017-03-31 10:34:20 -04001621 ${SUBZERO_DIR}/src/IceInstX8632.cpp
1622 ${SUBZERO_DIR}/src/IceTargetLoweringX8632.cpp
1623 )
1624 set(SUBZERO_TARGET X8632)
Nicolas Capens30cd7d42017-04-25 15:17:25 -04001625 elseif(ARCH STREQUAL "arm")
1626 list(APPEND SUBZERO_LIST
1627 ${SUBZERO_DIR}/src/IceAssemblerARM32.cpp
1628 ${SUBZERO_DIR}/src/IceInstARM32.cpp
1629 ${SUBZERO_DIR}/src/IceTargetLoweringARM32.cpp
1630 )
1631 set(SUBZERO_TARGET ARM32)
Gordana Cmiljanovic082dfec2018-10-19 11:36:15 +02001632 elseif(ARCH STREQUAL "mipsel")
1633 list(APPEND SUBZERO_LIST
1634 ${SUBZERO_DIR}/src/IceAssemblerMIPS32.cpp
1635 ${SUBZERO_DIR}/src/IceInstMIPS32.cpp
1636 ${SUBZERO_DIR}/src/IceTargetLoweringMIPS32.cpp
1637 )
1638 set(SUBZERO_TARGET MIPS32)
Nicolas Capens30cd7d42017-04-25 15:17:25 -04001639 else()
1640 message(FATAL_ERROR "Architecture '${ARCH}' not supported by Subzero")
Nicolas Capens26690ed2017-03-31 10:34:20 -04001641 endif()
1642
1643 file(GLOB_RECURSE SUBZERO_DEPENDENCIES_LIST
1644 ${SUBZERO_LLVM_DIR}/*.cpp
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05001645 ${SUBZERO_LLVM_DIR}/*.c
Nicolas Capens26690ed2017-03-31 10:34:20 -04001646 ${SUBZERO_LLVM_DIR}/*.h
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001647 )
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001648
Nicolas Capens26690ed2017-03-31 10:34:20 -04001649 set(SUBZERO_REACTOR_LIST
Nicolas Capensc07dc4b2018-08-06 14:20:45 -04001650 ${SOURCE_DIR}/Reactor/Debug.cpp
1651 ${SOURCE_DIR}/Reactor/Debug.hpp
Antonio Maioranoe6ab4702019-11-29 11:26:30 -05001652 ${SOURCE_DIR}/Reactor/EmulatedReactor.cpp
Nicolas Capens1a3ce872018-10-10 10:42:36 -04001653 ${SOURCE_DIR}/Reactor/ExecutableMemory.cpp
1654 ${SOURCE_DIR}/Reactor/ExecutableMemory.hpp
Ben Clayton23778452019-11-19 14:15:41 +00001655 ${SOURCE_DIR}/Reactor/Nucleus.hpp
1656 ${SOURCE_DIR}/Reactor/Optimizer.cpp
1657 ${SOURCE_DIR}/Reactor/Print.hpp
1658 ${SOURCE_DIR}/Reactor/Reactor.cpp
1659 ${SOURCE_DIR}/Reactor/Reactor.hpp
Antonio Maioranoaae33732020-02-14 14:52:34 -05001660 ${SOURCE_DIR}/Reactor/ReactorDebugInfo.cpp
1661 ${SOURCE_DIR}/Reactor/ReactorDebugInfo.hpp
Ben Clayton23778452019-11-19 14:15:41 +00001662 ${SOURCE_DIR}/Reactor/Routine.hpp
1663 ${SOURCE_DIR}/Reactor/SubzeroReactor.cpp
Nicolas Capens26690ed2017-03-31 10:34:20 -04001664 )
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001665
Nicolas Capens26690ed2017-03-31 10:34:20 -04001666 set(SUBZERO_INCLUDE_DIR
1667 ${SUBZERO_DIR}/
1668 ${SUBZERO_LLVM_DIR}/include/
1669 ${SUBZERO_DIR}/pnacl-llvm/include/
Nicolas Capensc07dc4b2018-08-06 14:20:45 -04001670 )
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001671
Nicolas Capens26690ed2017-03-31 10:34:20 -04001672 if(WIN32)
1673 list(APPEND SUBZERO_INCLUDE_DIR ${SUBZERO_LLVM_DIR}/build/Windows/include/)
1674 elseif(LINUX)
1675 list(APPEND SUBZERO_INCLUDE_DIR ${SUBZERO_LLVM_DIR}/build/Linux/include/)
1676 elseif(APPLE)
1677 list(APPEND SUBZERO_INCLUDE_DIR ${SUBZERO_LLVM_DIR}/build/MacOS/include/)
1678 endif()
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001679
Antonio Maiorano5bce1f42019-05-10 16:03:49 -04001680 if(WIN32)
1681 list(APPEND SUBZERO_COMPILE_OPTIONS
Antonio Maiorano992bf9d2019-10-22 09:41:17 -04001682 "/wd4146" # unary minus operator applied to unsigned type, result still unsigned
Antonio Maiorano5bce1f42019-05-10 16:03:49 -04001683 "/wd4334" # ''operator' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
1684 "/wd4996" # The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: new_name.
1685 )
Nicolas Capensce25c2d2020-03-06 11:08:13 -05001686 list(APPEND SUBZERO_DEPENDENCIES_COMPILE_OPTIONS
1687 ${SUBZERO_COMPILE_OPTIONS}
1688 "/wd4267" # '=': conversion from 'size_t' to 'sopno', possible loss of data
1689 "/wd4244" # '=': conversion from '__int64' to 'llvm_regoff_t', possible loss of data
1690 "/wd4141" # 'inline': used more than once
1691 "/wd4291" # 'void *operator new(size_t,const `anonymous-namespace'::NamedBufferAlloc &)': no matching operator delete found; memory will not be freed if initialization throws an exception
1692 )
Antonio Maiorano5bce1f42019-05-10 16:03:49 -04001693 endif()
1694
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05001695 add_library(SubzeroDependencies STATIC
1696 ${SUBZERO_DEPENDENCIES_LIST}
1697 )
1698 set_target_properties(SubzeroDependencies PROPERTIES
1699 POSITION_INDEPENDENT_CODE 1
1700 INCLUDE_DIRECTORIES "${SUBZERO_INCLUDE_DIR}"
Nicolas Capensce25c2d2020-03-06 11:08:13 -05001701 COMPILE_OPTIONS "${SUBZERO_DEPENDENCIES_COMPILE_OPTIONS}"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05001702 FOLDER "Subzero"
1703 )
1704
Nicolas Capens26690ed2017-03-31 10:34:20 -04001705 add_library(ReactorSubzero STATIC
1706 ${SUBZERO_LIST}
Nicolas Capens26690ed2017-03-31 10:34:20 -04001707 ${SUBZERO_REACTOR_LIST}
1708 )
Nicolas Capens26690ed2017-03-31 10:34:20 -04001709 set_target_properties(ReactorSubzero PROPERTIES
1710 POSITION_INDEPENDENT_CODE 1
1711 INCLUDE_DIRECTORIES "${SUBZERO_INCLUDE_DIR}"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05001712 COMPILE_OPTIONS "${SUBZERO_COMPILE_OPTIONS};${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Nicolas Capens26690ed2017-03-31 10:34:20 -04001713 COMPILE_DEFINITIONS "SZTARGET=${SUBZERO_TARGET}; ALLOW_DUMP=0; ALLOW_TIMERS=0; ALLOW_LLVM_CL=0; ALLOW_LLVM_IR=0; ALLOW_LLVM_IR_AS_INPUT=0; ALLOW_MINIMAL_BUILD=0; ALLOW_WASM=0; ICE_THREAD_LOCAL_HACK=0;"
1714 FOLDER "Subzero"
1715 )
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05001716 target_link_libraries(ReactorSubzero SubzeroDependencies)
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001717
Antonio Maiorano8bce0672020-02-28 13:13:45 -05001718 target_link_libraries(ReactorSubzero marl)
1719
Nicolas Capens26690ed2017-03-31 10:34:20 -04001720 if(WIN32)
1721 target_compile_definitions(ReactorSubzero PRIVATE SUBZERO_USE_MICROSOFT_ABI)
1722 endif()
Ben Clayton1e8486b2020-01-22 17:01:52 +00001723endif(${REACTOR_BACKEND} STREQUAL "Subzero")
Nicolas Capens19291ef2017-01-09 13:35:14 -05001724
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001725###########################################################
Corentin Wallez0866b292015-12-09 13:49:40 -05001726# Include Directories
1727###########################################################
1728
1729set(COMMON_INCLUDE_DIR
1730 ${SOURCE_DIR}
Erwin Jansend46faeb2018-11-19 16:01:37 -08001731 ${CMAKE_CURRENT_SOURCE_DIR}/include
Corentin Wallez0866b292015-12-09 13:49:40 -05001732 ${LLVM_INCLUDE_DIR}
Ben Claytonac07ed82019-03-26 14:17:41 +00001733 ${LIBBACKTRACE_INCLUDE_DIR}
Corentin Wallez0866b292015-12-09 13:49:40 -05001734)
1735set(OPENGL_INCLUDE_DIR
1736 ${OPENGL_DIR}
Corentin Wallez0866b292015-12-09 13:49:40 -05001737 ${COMMON_INCLUDE_DIR}
1738)
1739
Chris Forbes3d27f2e2018-09-26 09:24:39 -07001740set(VULKAN_INCLUDE_DIR
Chris Forbes3d27f2e2018-09-26 09:24:39 -07001741 ${COMMON_INCLUDE_DIR}
Ben Claytonafb4ebd2019-12-02 19:33:17 +00001742 ${CPPDAP_INCLUDE_DIR}
Chris Forbes3d27f2e2018-09-26 09:24:39 -07001743)
1744
Corentin Wallez0866b292015-12-09 13:49:40 -05001745###########################################################
1746# File Lists
1747###########################################################
1748
1749file(GLOB_RECURSE SWIFTSHADER_LIST
1750 ${SOURCE_DIR}/Common/*.cpp
1751 ${SOURCE_DIR}/Common/*.h
1752 ${SOURCE_DIR}/Common/*.hpp
1753 ${SOURCE_DIR}/Renderer/*.cpp
1754 ${SOURCE_DIR}/Renderer/*.h
1755 ${SOURCE_DIR}/Renderer/*.hpp
1756 ${SOURCE_DIR}/Shader/*.cpp
1757 ${SOURCE_DIR}/Shader/*.h
1758 ${SOURCE_DIR}/Shader/*.hpp
1759)
1760list(APPEND SWIFTSHADER_LIST
1761 ${SOURCE_DIR}/Main/Config.cpp
1762 ${SOURCE_DIR}/Main/Config.hpp
Corentin Wallez0866b292015-12-09 13:49:40 -05001763 ${SOURCE_DIR}/Main/FrameBuffer.cpp
1764 ${SOURCE_DIR}/Main/FrameBuffer.hpp
Corentin Wallez0866b292015-12-09 13:49:40 -05001765 ${SOURCE_DIR}/Main/SwiftConfig.cpp
1766 ${SOURCE_DIR}/Main/SwiftConfig.hpp
1767)
1768list(REMOVE_ITEM SWIFTSHADER_LIST
1769 ${SOURCE_DIR}/Common/DebugAndroid.cpp
1770 ${SOURCE_DIR}/Common/DebugAndroid.hpp
1771 ${SOURCE_DIR}/Common/GrallocAndroid.cpp
1772 ${SOURCE_DIR}/Common/GrallocAndroid.hpp
1773)
1774
Ben Claytonac07ed82019-03-26 14:17:41 +00001775if(REACTOR_EMIT_DEBUG_INFO)
1776 set(LIBBACKTRACE_LIST
1777 ${LIBBACKTRACE_DIR}/atomic.c
1778 ${LIBBACKTRACE_DIR}/backtrace.c
1779 ${LIBBACKTRACE_DIR}/backtrace.h
1780 ${LIBBACKTRACE_DIR}/dwarf.c
1781 ${LIBBACKTRACE_DIR}/fileline.c
1782 ${LIBBACKTRACE_DIR}/filenames.h
1783 ${LIBBACKTRACE_DIR}/internal.h
1784 ${LIBBACKTRACE_DIR}/mmap.c
1785 ${LIBBACKTRACE_DIR}/mmapio.c
1786 ${LIBBACKTRACE_DIR}/posix.c
1787 ${LIBBACKTRACE_DIR}/print.c
1788 ${LIBBACKTRACE_DIR}/simple.c
1789 ${LIBBACKTRACE_DIR}/sort.c
1790 ${LIBBACKTRACE_DIR}/state.c
1791 ${LIBBACKTRACE_INCLUDE_DIR}/backtrace-supported.h
1792 ${LIBBACKTRACE_INCLUDE_DIR}/config.h
1793 )
1794
1795 if(WIN32)
1796 list(APPEND LIBBACKTRACE_LIST ${LIBBACKTRACE_DIR}/pecoff.c)
1797 elseif(LINUX)
1798 list(APPEND LIBBACKTRACE_LIST ${LIBBACKTRACE_DIR}/elf.c)
1799 elseif(APPLE)
1800 message(FATAL_ERROR "libbacktrace does not support mach-o yet")
1801 endif()
1802endif(REACTOR_EMIT_DEBUG_INFO)
1803
Nicolas Capensf53adbd2017-01-06 12:47:46 -05001804set(REACTOR_LLVM_LIST
Nicolas Capensc07dc4b2018-08-06 14:20:45 -04001805 ${SOURCE_DIR}/Reactor/CPUID.cpp
1806 ${SOURCE_DIR}/Reactor/CPUID.hpp
1807 ${SOURCE_DIR}/Reactor/Debug.cpp
1808 ${SOURCE_DIR}/Reactor/Debug.hpp
Antonio Maioranoe6ab4702019-11-29 11:26:30 -05001809 ${SOURCE_DIR}/Reactor/EmulatedReactor.cpp
Nicolas Capens1a3ce872018-10-10 10:42:36 -04001810 ${SOURCE_DIR}/Reactor/ExecutableMemory.cpp
1811 ${SOURCE_DIR}/Reactor/ExecutableMemory.hpp
Nicolas Capens41a73022020-01-30 00:30:14 -05001812 ${SOURCE_DIR}/Reactor/LLVMJIT.cpp
Ben Clayton23778452019-11-19 14:15:41 +00001813 ${SOURCE_DIR}/Reactor/LLVMReactor.cpp
1814 ${SOURCE_DIR}/Reactor/LLVMReactor.hpp
1815 ${SOURCE_DIR}/Reactor/LLVMReactorDebugInfo.cpp
1816 ${SOURCE_DIR}/Reactor/LLVMReactorDebugInfo.hpp
1817 ${SOURCE_DIR}/Reactor/Nucleus.hpp
1818 ${SOURCE_DIR}/Reactor/Print.hpp
1819 ${SOURCE_DIR}/Reactor/Reactor.cpp
1820 ${SOURCE_DIR}/Reactor/Reactor.hpp
Antonio Maioranoaae33732020-02-14 14:52:34 -05001821 ${SOURCE_DIR}/Reactor/ReactorDebugInfo.cpp
1822 ${SOURCE_DIR}/Reactor/ReactorDebugInfo.hpp
Ben Clayton23778452019-11-19 14:15:41 +00001823 ${SOURCE_DIR}/Reactor/Routine.hpp
Corentin Wallez0866b292015-12-09 13:49:40 -05001824)
1825
1826file(GLOB_RECURSE EGL_LIST
1827 ${OPENGL_DIR}/libEGL/*.cpp
1828 ${OPENGL_DIR}/libEGL/*.h
1829 ${OPENGL_DIR}/libEGL/*.hpp
1830 ${OPENGL_DIR}/common/Object.cpp
1831 ${OPENGL_DIR}/common/Object.hpp
1832 ${OPENGL_DIR}/common/debug.cpp
1833 ${OPENGL_DIR}/common/debug.h
Chris Forbesf8374cf2018-12-06 13:25:59 -08001834 ${SOURCE_DIR}/Common/SharedLibrary.cpp
1835 ${SOURCE_DIR}/Common/SharedLibrary.hpp
Erwin Jansend46faeb2018-11-19 16:01:37 -08001836 ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
Corentin Wallez0866b292015-12-09 13:49:40 -05001837)
1838
Corentin Wallez0866b292015-12-09 13:49:40 -05001839file(GLOB_RECURSE GLES2_LIST
1840 ${OPENGL_DIR}/libGLESv2/*.cpp
1841 ${OPENGL_DIR}/libGLESv2/*.h
1842 ${OPENGL_DIR}/libGLESv2/*.hpp
Nicolas Capens681d97b2016-05-17 16:02:32 -04001843 ${OPENGL_DIR}/common/*.cpp
1844 ${OPENGL_DIR}/common/*.h
1845 ${OPENGL_DIR}/common/*.hpp
Chris Forbesf8374cf2018-12-06 13:25:59 -08001846 ${SOURCE_DIR}/Common/SharedLibrary.cpp
1847 ${SOURCE_DIR}/Common/SharedLibrary.hpp
Erwin Jansend46faeb2018-11-19 16:01:37 -08001848 ${CMAKE_CURRENT_SOURCE_DIR}/include/KHR/*.h
1849 ${CMAKE_CURRENT_SOURCE_DIR}/include/GLES2/*.h
1850 ${CMAKE_CURRENT_SOURCE_DIR}/include/GLES3/*.h
Corentin Wallez0866b292015-12-09 13:49:40 -05001851)
1852
1853file(GLOB_RECURSE GLES_CM_LIST
1854 ${OPENGL_DIR}/libGLES_CM/*.cpp
1855 ${OPENGL_DIR}/libGLES_CM/*.h
1856 ${OPENGL_DIR}/libGLES_CM/*.hpp
Nicolas Capens681d97b2016-05-17 16:02:32 -04001857 ${OPENGL_DIR}/common/*.cpp
1858 ${OPENGL_DIR}/common/*.h
1859 ${OPENGL_DIR}/common/*.hpp
Chris Forbesf8374cf2018-12-06 13:25:59 -08001860 ${SOURCE_DIR}/Common/SharedLibrary.cpp
1861 ${SOURCE_DIR}/Common/SharedLibrary.hpp
Erwin Jansend46faeb2018-11-19 16:01:37 -08001862 ${CMAKE_CURRENT_SOURCE_DIR}/include/KHR/*.h
1863 ${CMAKE_CURRENT_SOURCE_DIR}/include/GLES/*.h
Corentin Wallez0866b292015-12-09 13:49:40 -05001864)
1865
1866file(GLOB_RECURSE OPENGL_COMPILER_LIST
1867 ${OPENGL_COMPILER_DIR}/*.cpp
1868 ${OPENGL_COMPILER_DIR}/*.h
1869 ${OPENGL_COMPILER_DIR}/*.hpp
1870)
1871file(GLOB_RECURSE OPENGL_COMPILER_OS_SPECIFIC_LIST
1872 ${OPENGL_COMPILER_DIR}/ossource*.cpp
1873 ${OPENGL_COMPILER_DIR}/ossource*.h
1874 ${OPENGL_COMPILER_DIR}/ossource*.hpp
1875)
1876list(REMOVE_ITEM OPENGL_COMPILER_LIST ${OPENGL_COMPILER_OS_SPECIFIC_LIST})
1877
Ben Claytonafb4ebd2019-12-02 19:33:17 +00001878file(GLOB VULKAN_LIST
Chris Forbes3d27f2e2018-09-26 09:24:39 -07001879 ${VULKAN_DIR}/*.cpp
1880 ${VULKAN_DIR}/*.h
Alexis Hetue70c3512018-10-17 13:18:04 -04001881 ${VULKAN_DIR}/*.hpp
Ben Clayton77c89ff2020-01-08 19:10:14 +00001882 ${SOURCE_DIR}/System/Build.cpp
Ben Claytoneea9d352019-08-29 01:05:14 +01001883 ${SOURCE_DIR}/System/Build.hpp
Alexis Hetuc0f92f22018-11-15 16:25:38 -05001884 ${SOURCE_DIR}/System/CPUID.cpp
1885 ${SOURCE_DIR}/System/CPUID.hpp
1886 ${SOURCE_DIR}/System/Configurator.cpp
1887 ${SOURCE_DIR}/System/Configurator.hpp
Chris Forbesc730c382018-12-05 16:48:33 -08001888 ${SOURCE_DIR}/System/Debug.cpp
1889 ${SOURCE_DIR}/System/Debug.hpp
Alexis Hetuc0f92f22018-11-15 16:25:38 -05001890 ${SOURCE_DIR}/System/Half.cpp
1891 ${SOURCE_DIR}/System/Half.hpp
1892 ${SOURCE_DIR}/System/Math.cpp
1893 ${SOURCE_DIR}/System/Math.hpp
1894 ${SOURCE_DIR}/System/Memory.cpp
1895 ${SOURCE_DIR}/System/Memory.hpp
Alexis Hetuc0f92f22018-11-15 16:25:38 -05001896 ${SOURCE_DIR}/System/Socket.cpp
1897 ${SOURCE_DIR}/System/Socket.hpp
Ben Claytoned01f2c2019-05-20 10:42:35 +01001898 ${SOURCE_DIR}/System/Synchronization.hpp
Alexis Hetuc0f92f22018-11-15 16:25:38 -05001899 ${SOURCE_DIR}/System/Timer.cpp
1900 ${SOURCE_DIR}/System/Timer.hpp
1901 ${SOURCE_DIR}/Device/*.cpp
1902 ${SOURCE_DIR}/Device/*.hpp
1903 ${SOURCE_DIR}/Pipeline/*.cpp
1904 ${SOURCE_DIR}/Pipeline/*.hpp
Hernan Liatisc6eb41b2019-02-22 11:12:59 -08001905 ${SOURCE_DIR}/WSI/VkSurfaceKHR.cpp
1906 ${SOURCE_DIR}/WSI/VkSurfaceKHR.hpp
Hernan Liatisc7943e92019-02-25 19:29:54 -08001907 ${SOURCE_DIR}/WSI/VkSwapchainKHR.cpp
1908 ${SOURCE_DIR}/WSI/VkSwapchainKHR.hpp
Erwin Jansend46faeb2018-11-19 16:01:37 -08001909 ${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan/*.h}
Chris Forbes3d27f2e2018-09-26 09:24:39 -07001910)
1911
Sean Risserf6d3cbb2020-01-08 14:44:53 -05001912if(SWIFTSHADER_ENABLE_VULKAN_DEBUGGER)
Ben Claytonafb4ebd2019-12-02 19:33:17 +00001913 file(GLOB_RECURSE VULKAN_DEBUG_LIST
1914 ${VULKAN_DIR}/Debug/*.cpp
1915 ${VULKAN_DIR}/Debug/*.h
1916 ${VULKAN_DIR}/Debug/*.hpp
1917 )
1918 list(APPEND VULKAN_LIST ${VULKAN_DEBUG_LIST})
1919 list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DENABLE_VK_DEBUGGER")
Ben Clayton1e8486b2020-01-22 17:01:52 +00001920endif()
Ben Claytonafb4ebd2019-12-02 19:33:17 +00001921
Nicolas Capensa4347a92020-03-01 08:29:25 -05001922if(SWIFTSHADER_ENABLE_ASTC)
1923 file(GLOB_RECURSE VULKAN_ASTC_LIST
1924 ${ASTC_DIR}/Source/*.cpp
1925 ${ASTC_DIR}/Source/*.h
1926 )
1927 list(APPEND VULKAN_LIST ${VULKAN_ASTC_LIST})
1928 list(APPEND SWIFTSHADER_COMPILE_OPTIONS "-DSWIFTSHADER_ENABLE_ASTC")
1929endif()
1930
Ben Claytonafb4ebd2019-12-02 19:33:17 +00001931if(LINUX OR ANDROID)
David 'Digit' Turnerc9fa9fe2019-08-13 19:05:01 +02001932 list(APPEND VULKAN_LIST
1933 ${SOURCE_DIR}/System/Linux/MemFd.cpp
1934 ${SOURCE_DIR}/System/Linux/MemFd.hpp)
Ben Clayton1e8486b2020-01-22 17:01:52 +00001935endif()
David 'Digit' Turnerc9fa9fe2019-08-13 19:05:01 +02001936
Corentin Wallez0866b292015-12-09 13:49:40 -05001937###########################################################
1938# Append OS specific files to lists
1939###########################################################
1940
1941if(WIN32)
1942 list(APPEND SWIFTSHADER_LIST
1943 ${SOURCE_DIR}/Main/FrameBufferDD.cpp
1944 ${SOURCE_DIR}/Main/FrameBufferDD.hpp
1945 ${SOURCE_DIR}/Main/FrameBufferGDI.cpp
1946 ${SOURCE_DIR}/Main/FrameBufferGDI.hpp
1947 ${SOURCE_DIR}/Main/FrameBufferWin.cpp
1948 ${SOURCE_DIR}/Main/FrameBufferWin.hpp
Corentin Wallez0866b292015-12-09 13:49:40 -05001949 )
1950 list(APPEND OPENGL_COMPILER_LIST ${OPENGL_COMPILER_DIR}/ossource_win.cpp)
1951 list(APPEND EGL_LIST ${OPENGL_DIR}/libEGL/libEGL.rc)
Corentin Wallez0866b292015-12-09 13:49:40 -05001952 list(APPEND GLES2_LIST ${OPENGL_DIR}/libGLESv2/libGLESv2.rc)
1953 list(APPEND GLES_CM_LIST ${OPENGL_DIR}/libGLES_CM/libGLES_CM.rc)
Nicolas Capensd3545372019-08-09 13:59:18 -04001954 list(APPEND VULKAN_LIST
1955 ${VULKAN_DIR}/Vulkan.rc
1956 ${SOURCE_DIR}/WSI/Win32SurfaceKHR.cpp
1957 ${SOURCE_DIR}/WSI/Win32SurfaceKHR.hpp
1958 )
Corentin Wallez0866b292015-12-09 13:49:40 -05001959elseif(LINUX)
1960 list(APPEND SWIFTSHADER_LIST
1961 ${SOURCE_DIR}/Main/FrameBufferX11.cpp
1962 ${SOURCE_DIR}/Main/FrameBufferX11.hpp
Nicolas Capens681d97b2016-05-17 16:02:32 -04001963 ${SOURCE_DIR}/Common/SharedLibrary.hpp
1964 ${SOURCE_DIR}/Main/libX11.cpp
1965 ${SOURCE_DIR}/Main/libX11.hpp
1966 )
1967 list(APPEND EGL_LIST
1968 ${SOURCE_DIR}/Common/SharedLibrary.hpp
Corentin Wallez0866b292015-12-09 13:49:40 -05001969 ${SOURCE_DIR}/Main/libX11.cpp
1970 ${SOURCE_DIR}/Main/libX11.hpp
1971 )
1972 list(APPEND OPENGL_COMPILER_LIST
1973 ${OPENGL_COMPILER_DIR}/ossource_posix.cpp
1974 )
Hernan Liatisc6eb41b2019-02-22 11:12:59 -08001975
Ben Claytona9af8832019-08-14 13:09:43 +01001976 if(X11)
1977 list(APPEND VULKAN_LIST
1978 ${SOURCE_DIR}/WSI/XlibSurfaceKHR.cpp
1979 ${SOURCE_DIR}/WSI/XlibSurfaceKHR.hpp
1980 ${SOURCE_DIR}/WSI/libX11.cpp
1981 ${SOURCE_DIR}/WSI/libX11.hpp
1982 )
Ben Clayton1e8486b2020-01-22 17:01:52 +00001983 endif()
Ben Claytona9af8832019-08-14 13:09:43 +01001984
1985 if(XCB)
1986 list(APPEND VULKAN_LIST
1987 ${SOURCE_DIR}/WSI/XcbSurfaceKHR.cpp
1988 ${SOURCE_DIR}/WSI/XcbSurfaceKHR.hpp
1989 )
Ben Clayton1e8486b2020-01-22 17:01:52 +00001990 endif()
Ben Claytona9af8832019-08-14 13:09:43 +01001991
Corentin Wallez27654c22015-12-09 15:22:08 -05001992elseif(APPLE)
1993 list(APPEND SWIFTSHADER_LIST
1994 ${SOURCE_DIR}/Main/FrameBufferOSX.mm
1995 ${SOURCE_DIR}/Main/FrameBufferOSX.hpp
1996 )
Corentin Wallezcd0a4572015-12-10 15:59:28 -05001997 list(APPEND EGL_LIST
1998 ${OPENGL_DIR}/libEGL/OSXUtils.mm
1999 ${OPENGL_DIR}/libEGL/OSXUtils.hpp
2000 )
Corentin Wallez27654c22015-12-09 15:22:08 -05002001 list(APPEND OPENGL_COMPILER_LIST
2002 ${OPENGL_COMPILER_DIR}/ossource_posix.cpp
2003 )
Alexis Hetu0662a4a2019-07-08 15:06:40 -04002004
2005 list(APPEND VULKAN_LIST
Jonah Ryan-Davis215bc792019-10-31 17:23:49 -04002006 ${SOURCE_DIR}/WSI/MetalSurface.mm
2007 ${SOURCE_DIR}/WSI/MetalSurface.h
Alexis Hetu0662a4a2019-07-08 15:06:40 -04002008 )
Stephen Whitee6ab01f2019-04-04 14:31:25 -04002009elseif(ANDROID)
2010 list(APPEND SWIFTSHADER_LIST
2011 ${SOURCE_DIR}/Main/FrameBufferAndroid.cpp
2012 ${SOURCE_DIR}/Main/FrameBufferAndroid.hpp
2013 )
2014 list(APPEND OPENGL_COMPILER_LIST
2015 ${OPENGL_COMPILER_DIR}/ossource_posix.cpp
2016 )
Corentin Wallez0866b292015-12-09 13:49:40 -05002017endif()
2018
2019if(WIN32)
2020 set(OS_LIBS odbc32 odbccp32 WS2_32 dxguid)
2021elseif(LINUX)
Nicolas Capens681d97b2016-05-17 16:02:32 -04002022 set(OS_LIBS dl pthread)
Corentin Wallezcd0a4572015-12-10 15:59:28 -05002023elseif(APPLE)
2024 find_library(COCOA_FRAMEWORK Cocoa)
2025 find_library(QUARTZ_FRAMEWORK Quartz)
Alexis Hetud23cf632018-04-10 10:48:42 -04002026 find_library(CORE_FOUNDATION_FRAMEWORK CoreFoundation)
2027 find_library(IOSURFACE_FRAMEWORK IOSurface)
2028 set(OS_LIBS "${COCOA_FRAMEWORK}" "${QUARTZ_FRAMEWORK}" "${CORE_FOUNDATION_FRAMEWORK}" "${IOSURFACE_FRAMEWORK}")
Corentin Wallez0866b292015-12-09 13:49:40 -05002029endif()
2030
2031###########################################################
Nicolas Capens5a105bc2015-12-22 22:04:28 -05002032# SwiftShader Targets
Corentin Wallez0866b292015-12-09 13:49:40 -05002033###########################################################
2034
2035add_library(SwiftShader STATIC ${SWIFTSHADER_LIST})
2036set_target_properties(SwiftShader PROPERTIES
2037 INCLUDE_DIRECTORIES "${COMMON_INCLUDE_DIR}"
2038 POSITION_INDEPENDENT_CODE 1
2039 FOLDER "Core"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002040 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Nicolas Capens506cc5e2017-07-24 11:30:55 -04002041 COMPILE_DEFINITIONS "NO_SANITIZE_FUNCTION=;"
Corentin Wallez0866b292015-12-09 13:49:40 -05002042)
2043target_link_libraries(SwiftShader ${OS_LIBS})
2044
Ben Claytonb99bc1f2019-04-15 13:56:08 -04002045if(${REACTOR_BACKEND} STREQUAL "LLVM")
2046 add_library(ReactorLLVM STATIC ${REACTOR_LLVM_LIST})
2047 set_target_properties(ReactorLLVM PROPERTIES
2048 INCLUDE_DIRECTORIES "${COMMON_INCLUDE_DIR}"
Ben Claytonac07ed82019-03-26 14:17:41 +00002049 POSITION_INDEPENDENT_CODE 1
2050 FOLDER "Core"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002051 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Ben Claytonac07ed82019-03-26 14:17:41 +00002052 )
Ben Claytonb99bc1f2019-04-15 13:56:08 -04002053 target_link_libraries(ReactorLLVM llvm ${OS_LIBS})
Nicolas Capensf53adbd2017-01-06 12:47:46 -05002054 set(Reactor ReactorLLVM)
2055elseif(${REACTOR_BACKEND} STREQUAL "Subzero")
2056 set(Reactor ReactorSubzero)
2057else()
2058 message(FATAL_ERROR "REACTOR_BACKEND must be 'LLVM' or 'Subzero'")
2059endif()
Corentin Wallez0866b292015-12-09 13:49:40 -05002060
Antonio Maioranoaae33732020-02-14 14:52:34 -05002061if(REACTOR_EMIT_DEBUG_INFO)
2062 if(WIN32)
2063 # Boost stacktrace uses COM on Windows.
2064 # On Windows, cache COM instances in TLS for performance.
2065 target_compile_definitions(${Reactor} PRIVATE BOOST_STACKTRACE_USE_WINDBG_CACHED)
2066 else()
2067 # Boost stacktrace uses libbacktrace
2068 target_compile_definitions(${Reactor} PRIVATE BOOST_STACKTRACE_USE_BACKTRACE)
2069
2070 # Boost stacktrace uses exceptions, so force enable it
2071 set_cpp_flag("-fexceptions")
2072
2073 add_library(Libbacktrace STATIC ${LIBBACKTRACE_LIST})
2074 set_target_properties(Libbacktrace PROPERTIES
2075 INCLUDE_DIRECTORIES "${LIBBACKTRACE_INCLUDE_DIR}"
2076 POSITION_INDEPENDENT_CODE 1
2077 FOLDER "Core"
2078 )
2079 target_link_libraries(Libbacktrace ${OS_LIBS})
2080 target_link_libraries(${Reactor} Libbacktrace)
2081 endif()
2082
2083 # Download boost and use it
2084 DownloadBoost()
2085 set(BOOST_INCLUDEDIR ${BOOST_THIRD_PARTY_DIR})
2086 find_package(Boost REQUIRED)
2087 target_link_libraries(${Reactor} Boost::boost)
2088
2089endif(REACTOR_EMIT_DEBUG_INFO)
2090
Corentin Wallez0866b292015-12-09 13:49:40 -05002091add_library(GLCompiler STATIC ${OPENGL_COMPILER_LIST})
2092set_target_properties(GLCompiler PROPERTIES
2093 INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
2094 POSITION_INDEPENDENT_CODE 1
2095 FOLDER "OpenGL"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002096 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Corentin Wallez0866b292015-12-09 13:49:40 -05002097)
2098target_link_libraries(GLCompiler ${OS_LIBS})
2099
Nicolas Capens6f422092015-12-23 15:12:45 -05002100if(CMAKE_SIZEOF_VOID_P EQUAL 8)
2101 set(LIB_PREFIX "lib64")
2102else()
2103 set(LIB_PREFIX "lib")
2104endif()
2105
Sean Risserf6d3cbb2020-01-08 14:44:53 -05002106if(SWIFTSHADER_BUILD_EGL)
Corentin Wallez0866b292015-12-09 13:49:40 -05002107 add_library(libEGL SHARED ${EGL_LIST})
2108 set_target_properties(libEGL PROPERTIES
2109 INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
2110 FOLDER "OpenGL"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002111 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Antonio Maioranob0a68ed2019-04-26 15:34:22 -04002112 COMPILE_DEFINITIONS "EGL_EGLEXT_PROTOTYPES; EGLAPI=; NO_SANITIZE_FUNCTION=;$<$<CONFIG:Debug>:DEBUGGER_WAIT_DIALOG>"
Corentin Wallez0866b292015-12-09 13:49:40 -05002113 PREFIX ""
2114 )
Nicolas Capensd3545372019-08-09 13:59:18 -04002115 if(LINUX)
Ben Claytona9af8832019-08-14 13:09:43 +01002116 if(X11)
2117 set_property(TARGET libEGL APPEND PROPERTY COMPILE_DEFINITIONS "USE_X11=1")
Ben Clayton1e8486b2020-01-22 17:01:52 +00002118 endif()
Nicolas Capensd3545372019-08-09 13:59:18 -04002119 endif()
Stephen Whitee6ab01f2019-04-04 14:31:25 -04002120 if (ANDROID)
2121 set_target_properties(libEGL PROPERTIES SUFFIX "_swiftshader.so")
2122 endif ()
Nicolas Capens499bb762018-06-29 13:30:57 -04002123 set_shared_library_export_map(libEGL ${SOURCE_DIR}/OpenGL/libEGL)
Corentin Wallez0866b292015-12-09 13:49:40 -05002124 target_link_libraries(libEGL ${OS_LIBS})
Nicolas Capens6f422092015-12-23 15:12:45 -05002125 add_custom_command(
2126 TARGET libEGL
2127 POST_BUILD
2128 COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libEGL>/translator
2129 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> $<TARGET_FILE_DIR:libEGL>/translator/${LIB_PREFIX}EGL_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
Dan Sinclair1b8cd2d2019-03-14 10:51:05 -04002130 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
2131 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
Nicolas Capens6f422092015-12-23 15:12:45 -05002132 )
Corentin Wallez0866b292015-12-09 13:49:40 -05002133endif()
2134
Sean Risserf6d3cbb2020-01-08 14:44:53 -05002135if(SWIFTSHADER_BUILD_GLESv2)
Corentin Wallez0866b292015-12-09 13:49:40 -05002136 add_library(libGLESv2 SHARED ${GLES2_LIST})
2137 set_target_properties(libGLESv2 PROPERTIES
2138 INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
2139 FOLDER "OpenGL"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002140 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Nicolas Capens8e6ed2e2018-05-31 16:21:02 -04002141 COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES; GL_API=; GL_APICALL=; GLAPI=; NO_SANITIZE_FUNCTION=;"
Corentin Wallez0866b292015-12-09 13:49:40 -05002142 PREFIX ""
2143 )
Stephen Whitee6ab01f2019-04-04 14:31:25 -04002144 if (ANDROID)
2145 set_target_properties(libGLESv2 PROPERTIES SUFFIX "_swiftshader.so")
2146 endif ()
Nicolas Capens499bb762018-06-29 13:30:57 -04002147 set_shared_library_export_map(libGLESv2 ${SOURCE_DIR}/OpenGL/libGLESv2)
Nicolas Capensf53adbd2017-01-06 12:47:46 -05002148 target_link_libraries(libGLESv2 SwiftShader ${Reactor} GLCompiler ${OS_LIBS})
Nicolas Capens6f422092015-12-23 15:12:45 -05002149 add_custom_command(
2150 TARGET libGLESv2
2151 POST_BUILD
2152 COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLESv2>/translator
2153 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> $<TARGET_FILE_DIR:libGLESv2>/translator/${LIB_PREFIX}GLES_V2_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
Dan Sinclair1b8cd2d2019-03-14 10:51:05 -04002154 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
2155 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
Nicolas Capens6f422092015-12-23 15:12:45 -05002156 )
Corentin Wallez0866b292015-12-09 13:49:40 -05002157endif()
2158
Sean Risserf6d3cbb2020-01-08 14:44:53 -05002159if(SWIFTSHADER_BUILD_GLES_CM)
Corentin Wallez0866b292015-12-09 13:49:40 -05002160 add_library(libGLES_CM SHARED ${GLES_CM_LIST})
2161 set_target_properties(libGLES_CM PROPERTIES
2162 INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}"
2163 FOLDER "OpenGL"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002164 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Nicolas Capens8e6ed2e2018-05-31 16:21:02 -04002165 COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES; EGLAPI=; GL_API=; GL_APICALL=; GLAPI=;"
Corentin Wallez0866b292015-12-09 13:49:40 -05002166 PREFIX ""
2167 )
Stephen Whitee6ab01f2019-04-04 14:31:25 -04002168 if (ANDROID)
2169 set_target_properties(libGLES_CM PROPERTIES SUFFIX "_swiftshader.so")
2170 endif ()
Nicolas Capens499bb762018-06-29 13:30:57 -04002171 set_shared_library_export_map(libGLES_CM ${SOURCE_DIR}/OpenGL/libGLES_CM)
Nicolas Capensf53adbd2017-01-06 12:47:46 -05002172 target_link_libraries(libGLES_CM SwiftShader ${Reactor} GLCompiler ${OS_LIBS})
Nicolas Capens6f422092015-12-23 15:12:45 -05002173 add_custom_command(
2174 TARGET libGLES_CM
2175 POST_BUILD
2176 COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLES_CM>/translator
2177 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLES_CM> $<TARGET_FILE_DIR:libGLES_CM>/translator/${LIB_PREFIX}GLES_CM_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
2178 )
Ben Clayton1e8486b2020-01-22 17:01:52 +00002179endif(SWIFTSHADER_BUILD_GLES_CM)
Corentin Wallez0866b292015-12-09 13:49:40 -05002180
Sean Risserf6d3cbb2020-01-08 14:44:53 -05002181if(SWIFTSHADER_BUILD_VULKAN)
Ben Clayton815b4d82020-01-13 16:52:12 +00002182 add_library(vk_swiftshader SHARED ${VULKAN_LIST})
2183
Dan Sinclair6480d4e2019-03-11 10:48:19 -04002184 if (NOT TARGET SPIRV-Tools)
2185 # This variable is also used by SPIRV-Tools to locate SPIRV-Headers
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002186 set(SPIRV-Headers_SOURCE_DIR "${THIRD_PARTY_DIR}/SPIRV-Headers")
Dan Sinclair6480d4e2019-03-11 10:48:19 -04002187 list(APPEND VULKAN_INCLUDE_DIR "${SPIRV-Headers_SOURCE_DIR}/include")
Nicolas Capens4e9f5772019-01-31 15:17:13 -05002188
Dan Sinclair6480d4e2019-03-11 10:48:19 -04002189 add_subdirectory(third_party/SPIRV-Tools)
Nicolas Capens51b28002020-01-30 16:41:00 -05002190
2191 set_target_properties(core_tables PROPERTIES FOLDER "SPIRV-Tools build")
2192 set_target_properties(enum_string_mapping PROPERTIES FOLDER "SPIRV-Tools build")
2193 set_target_properties(extinst_tables PROPERTIES FOLDER "SPIRV-Tools build")
2194 set_target_properties(spirv-tools-pkg-config PROPERTIES FOLDER "SPIRV-Tools build")
2195 set_target_properties(spirv-tools-shared-pkg-config PROPERTIES FOLDER "SPIRV-Tools build")
Ben Clayton1e8486b2020-01-22 17:01:52 +00002196 endif()
Nicolas Capens4c9f04b2019-01-31 22:09:03 -05002197
Ben Clayton9cc163c2020-01-20 16:26:36 +00002198 # Copy the OpenCLDebugInfo100.h header that's generated by SPIRV-Tools
2199 # out to a separate directory that can be added to the include path.
2200 # Ideally, this header would just be pre-built and part of SPIRV-Headers.
2201 # See: https://github.com/KhronosGroup/SPIRV-Headers/issues/137
2202 set(SPIRV_TOOLS_EXT_INC_DIR ${CMAKE_CURRENT_BINARY_DIR}/spirv-tools-ext/include)
2203 add_custom_target(spirv_tools_ext_includes
2204 DEPENDS spirv-tools-header-OpenCLDebugInfo100
2205 COMMAND ${CMAKE_COMMAND} -E copy
2206 ${spirv-tools_BINARY_DIR}/OpenCLDebugInfo100.h
2207 ${SPIRV_TOOLS_EXT_INC_DIR}/spirv-tools/ext/OpenCLDebugInfo100.h
2208 )
Nicolas Capens51b28002020-01-30 16:41:00 -05002209 set_target_properties(spirv_tools_ext_includes PROPERTIES FOLDER "SPIRV-Tools build")
Ben Clayton9cc163c2020-01-20 16:26:36 +00002210 list(APPEND VULKAN_INCLUDE_DIR "${SPIRV_TOOLS_EXT_INC_DIR}")
2211 add_dependencies(vk_swiftshader spirv_tools_ext_includes)
Nicolas Capens2c99cf62019-08-28 15:36:19 -04002212
2213 set_target_properties(vk_swiftshader PROPERTIES
Chris Forbes3d27f2e2018-09-26 09:24:39 -07002214 INCLUDE_DIRECTORIES "${VULKAN_INCLUDE_DIR}"
2215 FOLDER "Vulkan"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002216 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Saman Samif4d2a442019-05-21 15:04:41 -04002217 COMPILE_DEFINITIONS "VK_EXPORT=;NO_SANITIZE_FUNCTION=;$<$<CONFIG:Debug>:DEBUGGER_WAIT_DIALOG>"
Chris Forbes3d27f2e2018-09-26 09:24:39 -07002218 )
Nicolas Capensd3545372019-08-09 13:59:18 -04002219
2220 if(WIN32)
Nicolas Capens29a98092019-04-03 14:35:10 -04002221 set(VULKAN_API_LIBRARY_NAME "vulkan-1.dll")
Nicolas Capens2c99cf62019-08-28 15:36:19 -04002222 set_property(TARGET vk_swiftshader APPEND
Nicolas Capensd3545372019-08-09 13:59:18 -04002223 PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_WIN32_KHR")
2224 elseif(LINUX)
Nicolas Capens29a98092019-04-03 14:35:10 -04002225 set(VULKAN_API_LIBRARY_NAME "libvulkan.so.1")
Ben Claytona9af8832019-08-14 13:09:43 +01002226 if(X11)
Nicolas Capens2c99cf62019-08-28 15:36:19 -04002227 set_property(TARGET vk_swiftshader APPEND
Ben Claytona9af8832019-08-14 13:09:43 +01002228 PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_XLIB_KHR")
Ben Clayton1e8486b2020-01-22 17:01:52 +00002229 endif()
Ben Claytona9af8832019-08-14 13:09:43 +01002230 if(XCB)
Nicolas Capens2c99cf62019-08-28 15:36:19 -04002231 set_property(TARGET vk_swiftshader APPEND
Ben Claytona9af8832019-08-14 13:09:43 +01002232 PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_XCB_KHR")
Ben Clayton1e8486b2020-01-22 17:01:52 +00002233 endif()
Nicolas Capensd3545372019-08-09 13:59:18 -04002234 elseif(APPLE)
Nicolas Capens29a98092019-04-03 14:35:10 -04002235 set(VULKAN_API_LIBRARY_NAME "libvulkan.dylib")
Nicolas Capens2c99cf62019-08-28 15:36:19 -04002236 set_property(TARGET vk_swiftshader APPEND
Nicolas Capensd3545372019-08-09 13:59:18 -04002237 PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_MACOS_MVK")
Nicolas Capens29a98092019-04-03 14:35:10 -04002238 else()
2239 message(FATAL_ERROR "Platform does not support Vulkan yet")
Nicolas Capensd3545372019-08-09 13:59:18 -04002240 endif()
2241
Nicolas Capens2c99cf62019-08-28 15:36:19 -04002242 set_shared_library_export_map(vk_swiftshader ${SOURCE_DIR}/Vulkan)
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002243
2244 set(VK_SWIFTSHADER_LIBS ${Reactor} marl ${OS_LIBS} SPIRV-Tools SPIRV-Tools-opt)
Sean Risserf6d3cbb2020-01-08 14:44:53 -05002245 if(SWIFTSHADER_ENABLE_VULKAN_DEBUGGER)
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002246 list(APPEND VK_SWIFTSHADER_LIBS cppdap)
Ben Clayton1e8486b2020-01-22 17:01:52 +00002247 endif()
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002248 target_link_libraries(vk_swiftshader ${VK_SWIFTSHADER_LIBS})
2249
Chris Forbes3d27f2e2018-09-26 09:24:39 -07002250 add_custom_command(
Nicolas Capens2c99cf62019-08-28 15:36:19 -04002251 TARGET vk_swiftshader
Chris Forbes3d27f2e2018-09-26 09:24:39 -07002252 POST_BUILD
Dan Sinclair1b8cd2d2019-03-14 10:51:05 -04002253 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
Nicolas Capens2c99cf62019-08-28 15:36:19 -04002254 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
Nicolas Capens29a98092019-04-03 14:35:10 -04002255 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/${VULKAN_API_LIBRARY_NAME}
Chris Forbes3d27f2e2018-09-26 09:24:39 -07002256 )
Paul Thomsona0b3a022019-06-24 17:16:55 +01002257
2258 # The vk_swiftshader_icd.json manifest file will point to ICD_LIBRARY_PATH.
2259 # Set ICD_LIBRARY_PATH to be a relative path similar to "./libvk_swiftshader.so", so both files can be moved.
2260 # A relative path is relative to the manifest file.
Nicolas Capens2c99cf62019-08-28 15:36:19 -04002261 set(ICD_LIBRARY_PATH "${CMAKE_SHARED_LIBRARY_PREFIX}vk_swiftshader${CMAKE_SHARED_LIBRARY_SUFFIX}")
Paul Thomsona0b3a022019-06-24 17:16:55 +01002262 if(WIN32)
2263 # The path is output to a JSON file, which requires backslashes to be escaped.
Ben Claytone671a692019-07-29 13:03:42 +01002264 set(ICD_LIBRARY_PATH ".\\\\${ICD_LIBRARY_PATH}")
Paul Thomsona0b3a022019-06-24 17:16:55 +01002265 else()
2266 set(ICD_LIBRARY_PATH "./${ICD_LIBRARY_PATH}")
2267 endif()
Ben Claytond9ce2582019-02-06 11:54:15 +00002268 configure_file(
2269 "${VULKAN_DIR}/vk_swiftshader_icd.json.tmpl"
Nicolas Capens29a98092019-04-03 14:35:10 -04002270 "${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/vk_swiftshader_icd.json"
2271 )
2272endif()
Chris Forbes3d27f2e2018-09-26 09:24:39 -07002273
Corentin Wallez0866b292015-12-09 13:49:40 -05002274###########################################################
Nicolas Capens29a98092019-04-03 14:35:10 -04002275# Sample programs and tests
Corentin Wallez0866b292015-12-09 13:49:40 -05002276###########################################################
2277
Sean Risserf6d3cbb2020-01-08 14:44:53 -05002278if(SWIFTSHADER_BUILD_SAMPLES)
Nicolas Capensf53adbd2017-01-06 12:47:46 -05002279 if(WIN32)
2280 add_executable(OGLES2HelloAPI ${HELLO2_DIR}/OGLES2HelloAPI_Windows.cpp)
2281 set_target_properties(OGLES2HelloAPI PROPERTIES
Erwin Jansend46faeb2018-11-19 16:01:37 -08002282 INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
Ben Clayton4ceb77d2019-04-24 12:09:59 +01002283 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
Nicolas Capensf53adbd2017-01-06 12:47:46 -05002284 COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES"
2285 FOLDER "Samples"
2286 )
2287 target_link_libraries(OGLES2HelloAPI libEGL libGLESv2)
2288 set_property(TARGET OGLES2HelloAPI APPEND_STRING PROPERTY LINK_FLAGS "/SUBSYSTEM:WINDOWS")
2289 set(CMAKE_DEFAULT_STARTUP_PROJECT OGLES2HelloAPI)
2290 elseif(LINUX)
Chinmay Garde204ec082016-08-10 17:01:21 -07002291 add_executable(OGLES2HelloAPI ${HELLO2_DIR}/OGLES2HelloAPI_LinuxX11.cpp)
Nicolas Capensb94a2fc2016-10-26 16:57:35 -04002292 set_target_properties(OGLES2HelloAPI PROPERTIES
Erwin Jansend46faeb2018-11-19 16:01:37 -08002293 INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
Ben Clayton4ceb77d2019-04-24 12:09:59 +01002294 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
Nicolas Capensb94a2fc2016-10-26 16:57:35 -04002295 COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES"
2296 )
Ben Claytona9af8832019-08-14 13:09:43 +01002297 target_link_libraries(OGLES2HelloAPI dl ${X11} libEGL libGLESv2) # Explicitly link our "lib*" targets, not the platform provided "EGL" and "GLESv2"
Chinmay Garde204ec082016-08-10 17:01:21 -07002298 elseif(APPLE)
2299 add_executable(OGLES2HelloAPI MACOSX_BUNDLE
2300 ${HELLO2_DIR}/OGLES2HelloAPI_OSX.mm
2301 ${HELLO2_DIR}/Build/OSX/en.lproj/MainMenu.xib
2302 )
2303 set_target_properties(OGLES2HelloAPI PROPERTIES
Erwin Jansend46faeb2018-11-19 16:01:37 -08002304 INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
Ben Clayton4ceb77d2019-04-24 12:09:59 +01002305 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};-Wno-deprecated-declarations" # 'NSTitledWindowMask', 'NSClosableWindowMask' is deprecated
Chinmay Garde204ec082016-08-10 17:01:21 -07002306 COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES"
2307 MACOSX_BUNDLE_INFO_PLIST "${HELLO2_DIR}/Build/OSX/Info.plist"
2308 )
2309 target_link_libraries(OGLES2HelloAPI libEGL libGLESv2 ${OS_LIBS})
2310 set_source_files_properties(${HELLO2_DIR}/Build/OSX/en.lproj/MainMenu.xib PROPERTIES
2311 MACOSX_PACKAGE_LOCATION "Resources"
2312 )
2313 endif()
Ben Clayton1e8486b2020-01-22 17:01:52 +00002314endif(SWIFTSHADER_BUILD_SAMPLES)
Nicolas Capens16594842017-04-26 10:01:37 -04002315
Sean Risserf6d3cbb2020-01-08 14:44:53 -05002316
2317if(SWIFTSHADER_BUILD_TESTS)
Nicolas Capensc07dc4b2018-08-06 14:20:45 -04002318 set(REACTOR_UNIT_TESTS_LIST
2319 ${SOURCE_DIR}/Reactor/ReactorUnitTests.cpp
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002320 ${THIRD_PARTY_DIR}/googletest/googletest/src/gtest-all.cc
Nicolas Capens16594842017-04-26 10:01:37 -04002321 )
2322
Nicolas Capensc07dc4b2018-08-06 14:20:45 -04002323 set(REACTOR_UNIT_TESTS_INCLUDE_DIR
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002324 ${THIRD_PARTY_DIR}/googletest/googletest/include
2325 ${THIRD_PARTY_DIR}/googletest/googletest/
Nicolas Capens16594842017-04-26 10:01:37 -04002326 )
2327
Nicolas Capensc07dc4b2018-08-06 14:20:45 -04002328 add_executable(ReactorUnitTests ${REACTOR_UNIT_TESTS_LIST})
2329 set_target_properties(ReactorUnitTests PROPERTIES
2330 INCLUDE_DIRECTORIES "${REACTOR_UNIT_TESTS_INCLUDE_DIR}"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002331 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Nicolas Capens16594842017-04-26 10:01:37 -04002332 FOLDER "Tests"
2333 )
Nicolas Capensc07dc4b2018-08-06 14:20:45 -04002334
2335 if(NOT WIN32 AND ${REACTOR_BACKEND} STREQUAL "Subzero")
Antonio Maiorano8bce0672020-02-28 13:13:45 -05002336 target_link_libraries(ReactorUnitTests ${Reactor} marl pthread dl)
Nicolas Capens16594842017-04-26 10:01:37 -04002337 else()
Antonio Maiorano8bce0672020-02-28 13:13:45 -05002338 target_link_libraries(ReactorUnitTests ${Reactor} marl)
Nicolas Capens16594842017-04-26 10:01:37 -04002339 endif()
Nicolas Capens39760e12018-06-04 15:55:45 -04002340
Ben Claytoneba396c2019-04-07 12:42:43 +01002341 set(GLES_UNITTESTS_LIST
Erwin Jansend46faeb2018-11-19 16:01:37 -08002342 ${CMAKE_CURRENT_SOURCE_DIR}/tests/GLESUnitTests/main.cpp
2343 ${CMAKE_CURRENT_SOURCE_DIR}/tests/GLESUnitTests/unittests.cpp
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002344 ${THIRD_PARTY_DIR}/googletest/googletest/src/gtest-all.cc
Nicolas Capens39760e12018-06-04 15:55:45 -04002345 )
2346
Ben Claytoneba396c2019-04-07 12:42:43 +01002347 set(GLES_UNITTESTS_INCLUDE_DIR
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002348 ${THIRD_PARTY_DIR}/googletest/googletest/include/
2349 ${THIRD_PARTY_DIR}/googletest/googlemock/include/
2350 ${THIRD_PARTY_DIR}/googletest/googletest/
Erwin Jansend46faeb2018-11-19 16:01:37 -08002351 ${CMAKE_CURRENT_SOURCE_DIR}/include/
Nicolas Capens39760e12018-06-04 15:55:45 -04002352 )
2353
Ben Claytoneba396c2019-04-07 12:42:43 +01002354 add_executable(gles-unittests ${GLES_UNITTESTS_LIST})
2355 set_target_properties(gles-unittests PROPERTIES
2356 INCLUDE_DIRECTORIES "${GLES_UNITTESTS_INCLUDE_DIR}"
Nicolas Capens39760e12018-06-04 15:55:45 -04002357 FOLDER "Tests"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002358 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Nicolas Capens39760e12018-06-04 15:55:45 -04002359 COMPILE_DEFINITIONS "STANDALONE"
2360 )
2361
Ben Claytoneba396c2019-04-07 12:42:43 +01002362 target_link_libraries(gles-unittests libEGL libGLESv2 ${OS_LIBS})
Stephen Whitee6ab01f2019-04-04 14:31:25 -04002363 if(ANDROID)
Ben Claytoneba396c2019-04-07 12:42:43 +01002364 target_link_libraries(gles-unittests -landroid)
Stephen Whitee6ab01f2019-04-04 14:31:25 -04002365 endif()
Ben Clayton30b6b592019-08-07 15:04:11 +01002366
Ben Claytond6c61362019-08-14 18:16:01 +01002367 # Math unit tests
Nicolas Capens5c09b6a2019-08-07 11:13:03 -04002368 set(MATH_UNITTESTS_LIST
2369 ${CMAKE_CURRENT_SOURCE_DIR}/tests/MathUnitTests/main.cpp
2370 ${CMAKE_CURRENT_SOURCE_DIR}/tests/MathUnitTests/unittests.cpp
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002371 ${THIRD_PARTY_DIR}/googletest/googletest/src/gtest-all.cc
Nicolas Capens5c09b6a2019-08-07 11:13:03 -04002372 )
2373
2374 set(MATH_UNITTESTS_INCLUDE_DIR
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002375 ${THIRD_PARTY_DIR}/googletest/googletest/include/
2376 ${THIRD_PARTY_DIR}/googletest/googlemock/include/
2377 ${THIRD_PARTY_DIR}/googletest/googletest/
Nicolas Capens5c09b6a2019-08-07 11:13:03 -04002378 ${CMAKE_CURRENT_SOURCE_DIR}/src/
2379 )
2380
2381 add_executable(math-unittests ${MATH_UNITTESTS_LIST})
2382 set_target_properties(math-unittests PROPERTIES
2383 INCLUDE_DIRECTORIES "${MATH_UNITTESTS_INCLUDE_DIR}"
2384 FOLDER "Tests"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002385 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Nicolas Capens5c09b6a2019-08-07 11:13:03 -04002386 )
2387
2388 if(NOT WIN32)
2389 target_link_libraries(math-unittests pthread)
2390 endif()
Ben Clayton1e8486b2020-01-22 17:01:52 +00002391endif(SWIFTSHADER_BUILD_TESTS)
Nicolas Capens5c09b6a2019-08-07 11:13:03 -04002392
Ben Clayton55890e12020-01-31 14:07:21 +00002393if(SWIFTSHADER_BUILD_BENCHMARKS)
2394 if (NOT TARGET benchmark::benchmark)
2395 set(BENCHMARK_ENABLE_TESTING FALSE CACHE BOOL FALSE FORCE)
2396 add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/third_party/benchmark)
2397 endif()
2398
2399 set(REACTOR_BENCHMARK_LIST
2400 ${SOURCE_DIR}/Reactor/ReactorBenchmarks.cpp
2401 )
2402
2403 add_executable(ReactorBenchmarks ${REACTOR_BENCHMARK_LIST})
Antonio Maiorano8bce0672020-02-28 13:13:45 -05002404 target_link_libraries(ReactorBenchmarks benchmark::benchmark marl ${Reactor})
Ben Clayton55890e12020-01-31 14:07:21 +00002405
2406 set_target_properties(ReactorBenchmarks PROPERTIES
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002407 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Ben Clayton55890e12020-01-31 14:07:21 +00002408 FOLDER "Benchmarks"
2409 )
2410endif(SWIFTSHADER_BUILD_BENCHMARKS)
2411
Sean Risserf6d3cbb2020-01-08 14:44:53 -05002412if(SWIFTSHADER_BUILD_TESTS AND SWIFTSHADER_BUILD_VULKAN)
Ben Claytoneba396c2019-04-07 12:42:43 +01002413 set(VK_UNITTESTS_LIST
Ben Claytonabb57852019-03-01 14:33:35 +00002414 ${CMAKE_CURRENT_SOURCE_DIR}/tests/VulkanUnitTests/Device.cpp
Ben Clayton654540e2019-02-01 13:08:23 +00002415 ${CMAKE_CURRENT_SOURCE_DIR}/tests/VulkanUnitTests/Driver.cpp
2416 ${CMAKE_CURRENT_SOURCE_DIR}/tests/VulkanUnitTests/main.cpp
2417 ${CMAKE_CURRENT_SOURCE_DIR}/tests/VulkanUnitTests/unittests.cpp
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002418 ${THIRD_PARTY_DIR}/googletest/googletest/src/gtest-all.cc
Ben Clayton654540e2019-02-01 13:08:23 +00002419 )
2420
Ben Claytoneba396c2019-04-07 12:42:43 +01002421 set(VK_UNITTESTS_INCLUDE_DIR
Ben Claytonafb4ebd2019-12-02 19:33:17 +00002422 ${THIRD_PARTY_DIR}/googletest/googletest/include/
2423 ${THIRD_PARTY_DIR}/googletest/googlemock/include/
2424 ${THIRD_PARTY_DIR}/googletest/googletest/
2425 ${THIRD_PARTY_DIR}/SPIRV-Tools/include
Ben Clayton654540e2019-02-01 13:08:23 +00002426 ${CMAKE_CURRENT_SOURCE_DIR}/include/
2427 )
2428
Ben Claytoneba396c2019-04-07 12:42:43 +01002429 add_executable(vk-unittests ${VK_UNITTESTS_LIST})
Nicolas Capens2c99cf62019-08-28 15:36:19 -04002430 add_dependencies(vk-unittests vk_swiftshader)
2431
Ben Clayton654540e2019-02-01 13:08:23 +00002432 set_target_properties(vk-unittests PROPERTIES
Ben Claytoneba396c2019-04-07 12:42:43 +01002433 INCLUDE_DIRECTORIES "${VK_UNITTESTS_INCLUDE_DIR}"
Ben Clayton654540e2019-02-01 13:08:23 +00002434 FOLDER "Tests"
Nicolas Capens8c13b2f2020-03-06 01:12:01 -05002435 COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};${WARNINGS_AS_ERRORS}"
Ben Clayton654540e2019-02-01 13:08:23 +00002436 COMPILE_DEFINITIONS "STANDALONE"
2437 )
2438
Ben Claytonabb57852019-03-01 14:33:35 +00002439 target_link_libraries(vk-unittests ${OS_LIBS} SPIRV-Tools)
Sean Risserf6d3cbb2020-01-08 14:44:53 -05002440endif(SWIFTSHADER_BUILD_TESTS AND SWIFTSHADER_BUILD_VULKAN)
Nicolas Capens51b28002020-01-30 16:41:00 -05002441
2442if(SWIFTSHADER_BUILD_PVR)
2443 if(UNIX AND NOT APPLE)
2444 set(PVR_WINDOW_SYSTEM XCB)
Nicolas Capens7e857092020-03-06 13:21:10 -05002445
2446 # Set the RPATH of the next defined build targets to $ORIGIN,
2447 # allowing them to load shared libraries from the execution directory.
2448 set(CMAKE_BUILD_RPATH "$ORIGIN")
Nicolas Capens51b28002020-01-30 16:41:00 -05002449 endif()
2450
2451 add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/third_party/PowerVR_Examples)
2452
Nicolas Capens7e857092020-03-06 13:21:10 -05002453 if(NOT APPLE)
Nicolas Capens51b28002020-01-30 16:41:00 -05002454 # Copy the 'loader' library to the bin/ directory
2455 # where the PowerVR executables are placed.
2456 add_custom_command(
2457 TARGET vk_swiftshader
2458 POST_BUILD
2459 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/bin/${VULKAN_API_LIBRARY_NAME}
2460 )
2461 endif()
2462
2463 # Samples known to work well
2464 set(PVR_VULKAN_TARGET_GOOD
2465 VulkanBumpmap
2466 VulkanGlass
2467 VulkanGnomeHorde
2468 VulkanHelloAPI
2469 VulkanImageBasedLighting
2470 VulkanMultiSampling
2471 VulkanSkinning
2472 )
2473
2474 set(PVR_VULKAN_TARGET_OTHER
2475 VulkanDeferredShading
2476 VulkanDeferredShadingPFX
2477 VulkanExampleUI
2478 VulkanGameOfLife
2479 VulkanGaussianBlur
2480 VulkanIBLMapsGenerator
2481 VulkanIMGTextureFilterCubic
2482 VulkanIntroducingPVRShell
2483 VulkanIntroducingPVRUtils
2484 VulkanIntroducingPVRVk
2485 VulkanIntroducingUIRenderer
2486 VulkanMultithreading
2487 VulkanNavigation2D
2488 VulkanNavigation3D
2489 VulkanParticleSystem
2490 VulkanPostProcessing
2491 VulkanPVRScopeExample
2492 VulkanPVRScopeRemote
2493 )
2494
2495 set(PVR_TARGET_OTHER
2496 glslang
2497 glslangValidator
2498 glslang-default-resource-limits
2499 OGLCompiler
2500 OSDependent
2501 OpenCLMatrixMultiplication
2502 OpenGLESDeferredShading
2503 OpenGLESGaussianBlur
2504 OpenGLESHelloAPI
2505 OpenGLESImageBasedLighting
2506 OpenGLESIMGFramebufferDownsample
2507 OpenGLESIMGTextureFilterCubic
2508 OpenGLESIntroducingPVRCamera
2509 OpenGLESIntroducingPVRShell
2510 OpenGLESIntroducingPVRUtils
2511 OpenGLESIntroducingUIRenderer
2512 OpenGLESMultiviewVR
2513 OpenGLESNavigation2D
2514 OpenGLESNavigation3D
2515 OpenGLESOpenCLExample
2516 OpenGLESParticleSystem
2517 OpenGLESPostProcessing
2518 OpenGLESPVRScopeExample
2519 OpenGLESPVRScopeRemote
2520 OpenGLESSkinning
2521 pugixml
2522 PVRAssets
2523 PVRCamera
2524 PVRCore
2525 PVRPfx
2526 PVRShell
2527 PVRUtilsGles
2528 PVRUtilsVk
2529 PVRVk
2530 SPIRV
2531 spirv-remap
2532 SPVRemapper
2533 uninstall
2534 )
2535
2536 set(PVR_VULKAN_TARGET
2537 ${PVR_VULKAN_TARGET_GOOD}
2538 ${PVR_VULKAN_TARGET_OTHER}
2539 )
2540
2541 foreach(pvr_target ${PVR_VULKAN_TARGET})
2542 add_dependencies(${pvr_target} vk_swiftshader)
2543 endforeach()
2544
2545 foreach(pvr_target ${PVR_VULKAN_TARGET_GOOD})
2546 set_target_properties(${pvr_target} PROPERTIES FOLDER Samples)
2547 endforeach()
2548
2549 foreach(pvr_target ${PVR_TARGET_OTHER} ${PVR_VULKAN_TARGET_OTHER})
2550 set_target_properties(${pvr_target} PROPERTIES FOLDER Samples/PowerVR-Build)
2551 endforeach()
2552endif()