blob: 1ba9cbcf856f62bf616b67569ad9aab3650ec675 [file] [log] [blame]
Courtney Goeltzenleuchtera8c06282015-04-14 14:55:44 -06001# Create the i965 Vulkan DRI library
Cody Northrop0eb5eea2014-09-19 15:11:52 -06002
Courtney Goeltzenleuchter9cc421e2015-04-08 15:36:08 -06003set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVK_PROTOTYPES -Wno-sign-compare")
Ian Elliott3fdadc82015-02-13 14:04:01 -07004set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare")
Cody Northrope8455b12014-09-17 16:18:12 -06005
Chia-I Wu6fffb3f2015-02-25 12:45:34 +08006add_subdirectory(kmd)
Ian Elliott3fdadc82015-02-13 14:04:01 -07007add_subdirectory(compiler)
Mark Lobodzinski953a1692015-01-09 15:12:03 -06008
Chia-I Wu32e43ad2015-02-20 15:08:31 -07009add_custom_command(OUTPUT gpa.c
Courtney Goeltzenleuchtera8c06282015-04-14 14:55:44 -060010 COMMAND ${PROJECT_SOURCE_DIR}/vk-generate.py icd-get-proc-addr > gpa.c
11 DEPENDS ${PROJECT_SOURCE_DIR}/vk-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py)
Chia-I Wuf77c2902015-01-04 00:34:44 +080012
Chia-I Wu464207a2015-01-11 00:08:21 +080013set(sources
Chia-I Wu714df452015-01-01 07:55:04 +080014 buf.c
Chia-I Wu09142132014-08-11 15:42:55 +080015 cmd.c
Chia-I Wu00b51a82014-09-09 12:07:37 +080016 cmd_decode.c
Chia-I Wuc14d1562014-10-17 09:49:22 +080017 cmd_meta.c
Chia-I Wu31ecdc72014-08-31 12:58:56 +080018 cmd_mi.c
Chia-I Wub0ca3a12015-02-18 15:54:05 -070019 cmd_barrier.c
Chia-I Wub2755562014-08-20 13:38:52 +080020 cmd_pipeline.c
Chia-I Wuf8385062015-01-04 16:27:24 +080021 desc.c
Chia-I Wue54854a2014-08-05 10:23:50 +080022 dev.c
Chia-I Wu856af0c2015-02-20 15:09:11 -070023 instance.c
Chia-I Wu9737a102014-08-07 07:59:51 +080024 event.c
Courtney Goeltzenleuchter434cf3f2015-06-09 08:13:49 -060025 extension_utils.c
Jon Ashburnc6f4a412014-12-24 12:38:36 -070026 fb.c
Chia-I Wubdf4c562014-08-07 06:36:33 +080027 fence.c
Chia-I Wuac6ba132014-08-07 14:21:43 +080028 format.c
Chia-I Wu32e43ad2015-02-20 15:08:31 -070029 gpa.c
Chia-I Wu214dac62014-08-05 11:07:40 +080030 gpu.c
Chia-I Wufeb441f2014-08-08 21:27:38 +080031 img.c
Chia-I Wu8a8d8b62014-08-14 13:26:26 +080032 layout.c
Chia-I Wuf9911eb2014-08-06 13:50:31 +080033 mem.c
Chia-I Wu82f50aa2014-08-05 10:43:03 +080034 obj.c
Courtney Goeltzenleuchter05a60542014-08-15 14:54:34 -060035 pipeline.c
Chia-I Wue18ff1b2014-08-07 13:38:51 +080036 query.c
Chia-I Wue09b5362014-08-07 09:25:14 +080037 queue.c
Chia-I Wu28b89962014-08-18 14:40:49 +080038 sampler.c
Courtney Goeltzenleuchter52ec3362014-08-19 11:52:02 -060039 shader.c
Chia-I Wua5714e82014-08-11 15:33:42 +080040 state.c
Chia-I Wu5a323262014-08-11 10:31:53 +080041 view.c
Courtney Goeltzenleuchtercec72952014-08-01 18:06:40 -060042 )
43
Chia-I Wu464207a2015-01-11 00:08:21 +080044set(definitions "")
Chia-I Wu6fffb3f2015-02-25 12:45:34 +080045set(include_dirs "")
Chia-I Wu44b92552015-01-10 23:16:41 +080046
Chia-I Wu464207a2015-01-11 00:08:21 +080047set(libraries
Chia-I Wu464207a2015-01-11 00:08:21 +080048 m
49 icd
Chia-I Wu6fffb3f2015-02-25 12:45:34 +080050 intelkmd
Chia-I Wu464207a2015-01-11 00:08:21 +080051 intelcompiler)
52
53find_package(XCB COMPONENTS xcb xcb-dri3 xcb-present)
54if(XCB_FOUND)
Chia-I Wu464207a2015-01-11 00:08:21 +080055 list(APPEND include_dirs ${XCB_INCLUDE_DIRS})
56 list(APPEND libraries ${XCB_LIBRARIES})
57 list(APPEND sources wsi_x11.c)
Chia-I Wu8635e912015-04-09 14:13:57 +080058
Courtney Goeltzenleuchter5f3f4f22015-04-13 14:29:13 -060059 set_source_files_properties(wsi_x11.c PROPERTIES COMPILE_FLAGS "-I${PROJECT_SOURCE_DIR}/icd/intel/kmd/libdrm/include/drm")
Chia-I Wu41858c82015-04-04 16:39:25 +080060else()
61 list(APPEND sources wsi_null.c)
Chia-I Wu1db76e02014-09-15 14:21:14 +080062endif()
63
Jon Ashburn7a02d542015-08-26 09:14:05 -060064if (NOT WIN32)
65 # extra setup for out-of-tree builds
66 # intel ICD not built on Windows
67 if (NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR))
68 add_custom_target(intel_icd-json ALL
69 COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/intel_icd.json
70 VERBATIM
71 )
72 endif()
73endif()
74
Courtney Goeltzenleuchter9cc421e2015-04-08 15:36:08 -060075add_library(VK_i965 SHARED ${sources})
76target_compile_definitions(VK_i965 PRIVATE ${definitions})
77target_include_directories(VK_i965 PRIVATE ${include_dirs})
78target_link_libraries(VK_i965 ${libraries})
Cody Northrope8455b12014-09-17 16:18:12 -060079
Courtney Goeltzenleuchterfeee1d02015-04-09 10:06:13 -060080# set -Bsymbolic for vkGetProcAddr()
Courtney Goeltzenleuchter9cc421e2015-04-08 15:36:08 -060081set_target_properties(VK_i965 PROPERTIES
Chia-I Wu507b40a2015-01-18 11:22:13 +080082 COMPILE_FLAGS "-Wmissing-declarations"
Chia-I Wucbd8ddf2015-01-18 11:11:42 +080083 LINK_FLAGS "-Wl,-Bsymbolic -Wl,-no-undefined -Wl,--exclude-libs,ALL")