blob: a02c71ba1ddde1b7f73afa450dc478ee20f08b89 [file] [log] [blame]
Jon Ashburnd43f9b62014-10-14 19:15:22 -06001include_directories(
2 ${CMAKE_CURRENT_SOURCE_DIR}
Chia-I Wu38e5a2c2015-01-04 11:12:47 +08003 ${CMAKE_CURRENT_BINARY_DIR}
Jon Ashburnd43f9b62014-10-14 19:15:22 -06004)
Chia-I Wu0c105342014-08-03 09:31:26 +08005
David Pinedodba967a2015-07-09 12:44:38 -06006if (WIN32)
7 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vulkan.${MAJOR}.def
8 COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/loader/vk-loader-generate.py win-def-file vulkan.${MAJOR}.dll all > ${CMAKE_CURRENT_BINARY_DIR}/vulkan.${MAJOR}.def
9 DEPENDS ${PROJECT_SOURCE_DIR}/loader/vk-loader-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py)
10else()
11 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vulkan.def
12 COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/loader/vk-loader-generate.py win-def-file vulkan.dll all > ${CMAKE_CURRENT_BINARY_DIR}/vulkan.def
13 DEPENDS ${PROJECT_SOURCE_DIR}/loader/vk-loader-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py)
14endif()
Tony Barbour69698512015-06-18 16:29:32 -060015
Courtney Goeltzenleuchterba7133b2015-02-10 18:40:14 -070016# DEBUG enables runtime loader ICD verification
17set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG")
18set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG")
Mark Lobodzinski953a1692015-01-09 15:12:03 -060019
Jon Ashburnffd5d672015-06-29 11:25:34 -060020set(LOADER_SRCS
21 loader.c
22 loader.h
Tobin Ehlis7a51d902015-07-03 10:34:49 -060023 vk_loader_platform.h
Jon Ashburnffd5d672015-06-29 11:25:34 -060024 trampoline.c
25 wsi_lunarg.c
26 wsi_lunarg.h
27 debug_report.c
28 debug_report.h
29 table_ops.h
30 gpa_helper.h
31 cJSON.c
32 cJSON.h
33)
Ian Elliott64f74a82015-02-04 12:06:46 -070034
Jon Ashburnffd5d672015-06-29 11:25:34 -060035if (WIN32)
36 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVK_PROTOTYPES -D_CRT_SECURE_NO_WARNINGS")
37
David Pinedodba967a2015-07-09 12:44:38 -060038 add_library(vulkan.${MAJOR} SHARED ${LOADER_SRCS} dirent_on_windows.c ${CMAKE_CURRENT_BINARY_DIR}/vulkan.${MAJOR}.def)
39 set_target_properties(vulkan.${MAJOR} PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_BINARY_DIR}/vulkan.${MAJOR}.def")
40 add_library(VKstatic.${MAJOR} STATIC ${LOADER_SRCS} dirent_on_windows.c)
41 set_target_properties(VKstatic.${MAJOR} PROPERTIES OUTPUT_NAME VKstatic.${MAJOR})
42 target_link_libraries(vulkan.${MAJOR} shlwapi)
Ian Elliott81ac44c2015-01-13 17:52:38 -070043endif()
44if (NOT WIN32)
Courtney Goeltzenleuchter9cc421e2015-04-08 15:36:08 -060045 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVK_PROTOTYPES -Wpointer-arith")
Ian Elliott64f74a82015-02-04 12:06:46 -070046
Jon Ashburnffd5d672015-06-29 11:25:34 -060047 add_library(vulkan SHARED ${LOADER_SRCS})
Courtney Goeltzenleuchtera8c06282015-04-14 14:55:44 -060048 set_target_properties(vulkan PROPERTIES SOVERSION 0)
Jon Ashburnee431fc2015-06-29 17:51:36 -060049 target_link_libraries(vulkan -ldl -lpthread -lm)
Ian Elliott81ac44c2015-01-13 17:52:38 -070050endif()