blob: d8039304bebc3eaecf7e3efc37a59432adc5d50e [file] [log] [blame]
Chia-I Wu0c5fb772014-11-19 22:45:51 +08001add_custom_command(OUTPUT dispatch.c
Courtney Goeltzenleuchtera8c06282015-04-14 14:55:44 -06002 COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/vk-generate.py loader-entrypoints > dispatch.c
3 DEPENDS ${PROJECT_SOURCE_DIR}/vk-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py
4 ${PROJECT_SOURCE_DIR}/include/vkIcd.h)
Jon Ashburnd43f9b62014-10-14 19:15:22 -06005
Chia-I Wu38e5a2c2015-01-04 11:12:47 +08006add_custom_command(OUTPUT table_ops.h
Courtney Goeltzenleuchtera8c06282015-04-14 14:55:44 -06007 COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/vk-generate.py dispatch-table-ops loader > table_ops.h
8 DEPENDS ${PROJECT_SOURCE_DIR}/vk-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py)
Chia-I Wu38e5a2c2015-01-04 11:12:47 +08009
Courtney Goeltzenleuchtera8c06282015-04-14 14:55:44 -060010add_custom_command(OUTPUT vulkan.def
11 COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/vk-generate.py win-def-file vulkan all > vulkan.def
12 DEPENDS ${PROJECT_SOURCE_DIR}/vk-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py)
Chia-I Wud98a23c2015-04-11 10:56:50 +080013
Jon Ashburnd43f9b62014-10-14 19:15:22 -060014include_directories(
15 ${CMAKE_CURRENT_SOURCE_DIR}
Chia-I Wu38e5a2c2015-01-04 11:12:47 +080016 ${CMAKE_CURRENT_BINARY_DIR}
Jon Ashburnd43f9b62014-10-14 19:15:22 -060017)
Chia-I Wu0c105342014-08-03 09:31:26 +080018
Courtney Goeltzenleuchterba7133b2015-02-10 18:40:14 -070019# DEBUG enables runtime loader ICD verification
20set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG")
21set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG")
Mark Lobodzinski953a1692015-01-09 15:12:03 -060022
Ian Elliott81ac44c2015-01-13 17:52:38 -070023if (WIN32)
Courtney Goeltzenleuchter9cc421e2015-04-08 15:36:08 -060024 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVK_PROTOTYPES -D_CRT_SECURE_NO_WARNINGS -DXCB_NVIDIA")
Ian Elliott64f74a82015-02-04 12:06:46 -070025
Courtney Goeltzenleuchtera8c06282015-04-14 14:55:44 -060026 add_library(vulkan SHARED loader.c loader.h dirent_on_windows.c dispatch.c table_ops.h vulkan.def)
27 set_target_properties(vulkan PROPERTIES LINK_FLAGS "/DEF:${PROJECT_SOURCE_DIR}/loader/vulkan.def")
28 add_library(VKstatic STATIC loader.c loader.h dirent_on_windows.c dispatch.c table_ops.h)
29 set_target_properties(VKstatic PROPERTIES OUTPUT_NAME VKstatic)
30 target_link_libraries(vulkan)
Ian Elliott81ac44c2015-01-13 17:52:38 -070031endif()
32if (NOT WIN32)
Courtney Goeltzenleuchter9cc421e2015-04-08 15:36:08 -060033 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVK_PROTOTYPES -Wpointer-arith")
Ian Elliott64f74a82015-02-04 12:06:46 -070034
Courtney Goeltzenleuchtera8c06282015-04-14 14:55:44 -060035 add_library(vulkan SHARED loader.c dispatch.c table_ops.h)
36 set_target_properties(vulkan PROPERTIES SOVERSION 0)
37 target_link_libraries(vulkan -ldl -lpthread)
Ian Elliott81ac44c2015-01-13 17:52:38 -070038endif()