Jon Ashburn | d38bfb1 | 2014-10-14 19:15:22 -0600 | [diff] [blame] | 1 | include_directories( |
Mark Young | 0f183a8 | 2017-02-28 09:58:04 -0700 | [diff] [blame] | 2 | ${CMAKE_CURRENT_SOURCE_DIR} |
| 3 | ${CMAKE_CURRENT_BINARY_DIR} |
| 4 | ${CMAKE_PROJECT_BINARY_DIR} |
| 5 | ${CMAKE_BINARY_DIR} |
Jon Ashburn | d38bfb1 | 2014-10-14 19:15:22 -0600 | [diff] [blame] | 6 | ) |
Mark Young | 0f183a8 | 2017-02-28 09:58:04 -0700 | [diff] [blame] | 7 | |
Mark Young | ba7ee02 | 2017-03-09 10:41:25 -0700 | [diff] [blame] | 8 | # Check for the existance of the secure_getenv or __secure_getenv commands |
| 9 | include(CheckFunctionExists) |
| 10 | CHECK_FUNCTION_EXISTS(secure_getenv HAVE_SECURE_GETENV) |
| 11 | CHECK_FUNCTION_EXISTS(__secure_getenv HAVE___SECURE_GETENV) |
| 12 | CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/loader_cmake_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/loader_cmake_config.h) |
| 13 | |
Karl Schultz | b4d31af | 2017-03-10 14:58:10 -0700 | [diff] [blame] | 14 | # Fetch header version from vulkan.h |
| 15 | file(STRINGS "../include/vulkan/vulkan.h" lines REGEX "^#define VK_HEADER_VERSION [0-9]+") |
| 16 | list(LENGTH lines len) |
| 17 | if(${len} EQUAL 1) |
| 18 | string(REGEX MATCHALL "[0-9]+" vk_header_version ${lines}) |
| 19 | else() |
| 20 | MESSAGE(FATAL_ERROR "Unable to fetch version from vulkan.h") |
| 21 | endif() |
| 22 | |
Tony Barbour | 29cc952 | 2016-12-07 11:18:19 -0700 | [diff] [blame] | 23 | if(CMAKE_SYSTEM_NAME STREQUAL "Windows") |
| 24 | add_definitions(-DVK_USE_PLATFORM_WIN32_KHR -DWIN32_LEAN_AND_MEAN) |
| 25 | set(DisplayServer Win32) |
Mark Lobodzinski | faef4e7 | 2017-10-05 11:18:52 -0600 | [diff] [blame] | 26 | if (NOT MSVC_VERSION LESS 1900) |
| 27 | # Enable control flow guard |
| 28 | message(STATUS "Building loader with control flow guard") |
| 29 | add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/guard:cf>") |
| 30 | set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /guard:cf") |
| 31 | set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /guard:cf") |
| 32 | endif() |
Tony Barbour | 29cc952 | 2016-12-07 11:18:19 -0700 | [diff] [blame] | 33 | elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") |
| 34 | add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR) |
| 35 | elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
| 36 | if (BUILD_WSI_XCB_SUPPORT) |
| 37 | add_definitions(-DVK_USE_PLATFORM_XCB_KHR) |
| 38 | endif() |
| 39 | |
| 40 | if (BUILD_WSI_XLIB_SUPPORT) |
Mark Young | 3938987 | 2017-01-19 21:10:49 -0700 | [diff] [blame] | 41 | add_definitions(-DVK_USE_PLATFORM_XLIB_KHR -DVK_USE_PLATFORM_XLIB_XRANDR_EXT) |
Tony Barbour | 29cc952 | 2016-12-07 11:18:19 -0700 | [diff] [blame] | 42 | endif() |
| 43 | |
| 44 | if (BUILD_WSI_WAYLAND_SUPPORT) |
| 45 | add_definitions(-DVK_USE_PLATFORM_WAYLAND_KHR) |
| 46 | endif() |
| 47 | |
| 48 | if (BUILD_WSI_MIR_SUPPORT) |
| 49 | add_definitions(-DVK_USE_PLATFORM_MIR_KHR) |
Tony Barbour | c53c727 | 2016-12-07 10:19:21 -0700 | [diff] [blame] | 50 | include_directories(${MIR_INCLUDE_DIR}) |
Tony Barbour | 29cc952 | 2016-12-07 11:18:19 -0700 | [diff] [blame] | 51 | endif() |
| 52 | else() |
| 53 | message(FATAL_ERROR "Unsupported Platform!") |
| 54 | endif() |
Chia-I Wu | 0c10534 | 2014-08-03 09:31:26 +0800 | [diff] [blame] | 55 | |
David Pinedo | 0c08365 | 2015-07-09 12:44:38 -0600 | [diff] [blame] | 56 | if (WIN32) |
Lenny Komow | 7841316 | 2016-12-23 14:12:18 -0700 | [diff] [blame] | 57 | FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/vulkan-${MAJOR}.def DEF_FILE) |
| 58 | FILE(READ ${DEF_FILE} DEF_TEXT) |
| 59 | STRING(REGEX REPLACE "vulkan-${MAJOR}.dll" "${API_LOWERCASE}-${MAJOR}.dll" DEF_EDITED "${DEF_TEXT}" ) |
| 60 | FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${API_LOWERCASE}-${MAJOR}.def" "${DEF_EDITED}") |
David Pinedo | 0c08365 | 2015-07-09 12:44:38 -0600 | [diff] [blame] | 61 | endif() |
Tony Barbour | 1d825c7 | 2015-06-18 16:29:32 -0600 | [diff] [blame] | 62 | |
Courtney Goeltzenleuchter | 64ca923 | 2015-02-10 18:40:14 -0700 | [diff] [blame] | 63 | # DEBUG enables runtime loader ICD verification |
| 64 | set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG") |
| 65 | set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") |
Mark Lobodzinski | 391bb6d | 2015-01-09 15:12:03 -0600 | [diff] [blame] | 66 | |
Jon Ashburn | 761de4b | 2016-03-11 10:58:56 -0700 | [diff] [blame] | 67 | set(NORMAL_LOADER_SRCS |
Mark Young | d66edd5 | 2017-03-10 17:31:18 -0700 | [diff] [blame] | 68 | extension_manual.c |
Jon Ashburn | 2077e38 | 2015-06-29 11:25:34 -0600 | [diff] [blame] | 69 | loader.c |
| 70 | loader.h |
Tobin Ehlis | b835d1b | 2015-07-03 10:34:49 -0600 | [diff] [blame] | 71 | vk_loader_platform.h |
Mark Lobodzinski | b87f902 | 2016-05-24 16:04:56 -0600 | [diff] [blame] | 72 | vk_loader_layer.h |
Jon Ashburn | 2077e38 | 2015-06-29 11:25:34 -0600 | [diff] [blame] | 73 | trampoline.c |
Ian Elliott | 954fa34 | 2015-10-30 15:28:23 -0600 | [diff] [blame] | 74 | wsi.c |
| 75 | wsi.h |
Jon Ashburn | 2077e38 | 2015-06-29 11:25:34 -0600 | [diff] [blame] | 76 | debug_report.c |
| 77 | debug_report.h |
Jon Ashburn | 2077e38 | 2015-06-29 11:25:34 -0600 | [diff] [blame] | 78 | gpa_helper.h |
| 79 | cJSON.c |
| 80 | cJSON.h |
Jon Ashburn | fc1031e | 2015-11-17 15:31:02 -0700 | [diff] [blame] | 81 | murmurhash.c |
| 82 | murmurhash.h |
Jon Ashburn | 2077e38 | 2015-06-29 11:25:34 -0600 | [diff] [blame] | 83 | ) |
Ian Elliott | 1962880 | 2015-02-04 12:06:46 -0700 | [diff] [blame] | 84 | |
Mark Young | 0f183a8 | 2017-02-28 09:58:04 -0700 | [diff] [blame] | 85 | set(OPT_LOADER_SRCS |
Jon Ashburn | 761de4b | 2016-03-11 10:58:56 -0700 | [diff] [blame] | 86 | dev_ext_trampoline.c |
Mark Young | 3938987 | 2017-01-19 21:10:49 -0700 | [diff] [blame] | 87 | phys_dev_ext.c |
Jon Ashburn | 761de4b | 2016-03-11 10:58:56 -0700 | [diff] [blame] | 88 | ) |
| 89 | |
Lenny Komow | 5ed93f2 | 2017-06-08 16:41:02 -0600 | [diff] [blame] | 90 | # Check for assembler support |
| 91 | set(ASM_FAILURE_MSG "The build will fall back on building with C code\n") |
| 92 | set(ASM_FAILURE_MSG "${ASM_FAILURE_MSG}Note that this may be unsafe, as the C code requires tail-call optimizations to remove") |
| 93 | set(ASM_FAILURE_MSG "${ASM_FAILURE_MSG} the stack frame for certain calls. If the compiler does not do this, then unknown device") |
| 94 | set(ASM_FAILURE_MSG "${ASM_FAILURE_MSG} extensions will suffer from a corrupted stack.") |
| 95 | if (WIN32) |
| 96 | enable_language(ASM_MASM) |
| 97 | if (CMAKE_ASM_MASM_COMPILER_WORKS) |
Lenny Komow | ba800b8 | 2017-06-22 11:45:47 -0600 | [diff] [blame] | 98 | if (NOT CMAKE_CL_64) |
| 99 | set(CMAKE_ASM_MASM_FLAGS ${CMAKE_ASM_MASM_FLAGS} /safeseh) |
| 100 | endif() |
Lenny Komow | ea568fe | 2017-07-03 14:48:38 -0600 | [diff] [blame] | 101 | set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} unknown_ext_chain_masm.asm) |
Lenny Komow | 5ed93f2 | 2017-06-08 16:41:02 -0600 | [diff] [blame] | 102 | |
| 103 | add_executable(asm_offset asm_offset.c) |
| 104 | add_dependencies(asm_offset generate_helper_files loader_gen_files) |
| 105 | add_custom_command(OUTPUT gen_defines.asm DEPENDS asm_offset COMMAND asm_offset MASM) |
| 106 | add_custom_target(loader_asm_gen_files DEPENDS gen_defines.asm) |
| 107 | else() |
| 108 | message(WARNING "Could not find working MASM assebler\n${ASM_FAILURE_MSG}") |
Lenny Komow | ea568fe | 2017-07-03 14:48:38 -0600 | [diff] [blame] | 109 | set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} unknown_ext_chain.c) |
Lenny Komow | 5ed93f2 | 2017-06-08 16:41:02 -0600 | [diff] [blame] | 110 | add_custom_target(loader_asm_gen_files) |
| 111 | endif() |
| 112 | else() |
Lenny Komow | b8133f5 | 2017-06-09 15:21:06 -0600 | [diff] [blame] | 113 | enable_language(ASM-ATT) |
Lenny Komow | d3953da | 2017-06-29 15:40:12 -0600 | [diff] [blame] | 114 | set(CMAKE_ASM-ATT_FLAGS "${CMAKE_ASM-ATT_FLAGS} $ENV{ASFLAGS}") |
| 115 | set(CMAKE_ASM-ATT_FLAGS "${CMAKE_ASM-ATT_FLAGS} -I\"${CMAKE_CURRENT_BINARY_DIR}\"") |
Józef Kucia | e0ab148 | 2017-06-16 13:28:14 +0200 | [diff] [blame] | 116 | |
Lenny Komow | d3953da | 2017-06-29 15:40:12 -0600 | [diff] [blame] | 117 | file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/asm_test.asm ".intel_syntax noprefix\n.text\n.global sample\nsample:\nmov ecx, [eax + 16]\n") |
| 118 | try_compile(ASSEMBLER_WORKS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/asm_test.asm) |
| 119 | file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/asm_test.asm) |
| 120 | if (ASSEMBLER_WORKS) |
Lenny Komow | ea568fe | 2017-07-03 14:48:38 -0600 | [diff] [blame] | 121 | set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} unknown_ext_chain_gas.asm) |
Lenny Komow | b8133f5 | 2017-06-09 15:21:06 -0600 | [diff] [blame] | 122 | add_executable(asm_offset asm_offset.c) |
| 123 | add_dependencies(asm_offset generate_helper_files loader_gen_files) |
| 124 | add_custom_command(OUTPUT gen_defines.asm DEPENDS asm_offset COMMAND asm_offset GAS) |
| 125 | add_custom_target(loader_asm_gen_files DEPENDS gen_defines.asm) |
| 126 | else() |
Lenny Komow | d3953da | 2017-06-29 15:40:12 -0600 | [diff] [blame] | 127 | message(WARNING "Could not find working x86 GAS assembler\n${ASM_FAILURE_MSG}") |
Lenny Komow | ea568fe | 2017-07-03 14:48:38 -0600 | [diff] [blame] | 128 | set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} unknown_ext_chain.c) |
Lenny Komow | b8133f5 | 2017-06-09 15:21:06 -0600 | [diff] [blame] | 129 | add_custom_target(loader_asm_gen_files) |
| 130 | endif() |
Lenny Komow | 5ed93f2 | 2017-06-08 16:41:02 -0600 | [diff] [blame] | 131 | endif() |
| 132 | |
Mark Young | 634bd7b | 2017-03-06 13:57:13 -0700 | [diff] [blame] | 133 | run_vk_xml_generate(loader_extension_generator.py vk_loader_extensions.h) |
| 134 | run_vk_xml_generate(loader_extension_generator.py vk_loader_extensions.c) |
| 135 | add_custom_target(loader_gen_files DEPENDS |
| 136 | vk_loader_extensions.h |
| 137 | vk_loader_extensions.c |
| 138 | ) |
Mark Young | 0f183a8 | 2017-02-28 09:58:04 -0700 | [diff] [blame] | 139 | |
Jon Ashburn | 2077e38 | 2015-06-29 11:25:34 -0600 | [diff] [blame] | 140 | if (WIN32) |
Dustin Graves | abe8b47 | 2016-05-31 16:32:29 -0600 | [diff] [blame] | 141 | # Use static MSVCRT libraries |
| 142 | foreach(configuration in CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO |
| 143 | CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELWITHDEBINFO) |
| 144 | if(${configuration} MATCHES "/MD") |
| 145 | string(REGEX REPLACE "/MD" "/MT" ${configuration} "${${configuration}}") |
| 146 | endif() |
| 147 | endforeach() |
| 148 | |
Jon Ashburn | ce816b6 | 2016-01-12 11:33:33 -0700 | [diff] [blame] | 149 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS") |
Jon Ashburn | 761de4b | 2016-03-11 10:58:56 -0700 | [diff] [blame] | 150 | # Build dev_ext_trampoline.c with -O2 to allow tail-call optimization. |
| 151 | # Build other C files with normal options |
| 152 | # setup two Cmake targets (loader-norm and loader-opt) for the different compilation flags |
| 153 | separate_arguments(LOCAL_C_FLAGS_DBG WINDOWS_COMMAND ${CMAKE_C_FLAGS_DEBUG}) |
| 154 | set(CMAKE_C_FLAGS_DEBUG " ") |
| 155 | separate_arguments(LOCAL_C_FLAGS_REL WINDOWS_COMMAND ${CMAKE_C_FLAGS_RELEASE}) |
Jon Ashburn | 2077e38 | 2015-06-29 11:25:34 -0600 | [diff] [blame] | 156 | |
Jon Ashburn | 761de4b | 2016-03-11 10:58:56 -0700 | [diff] [blame] | 157 | add_library(loader-norm OBJECT ${NORMAL_LOADER_SRCS} dirent_on_windows.c) |
Mark Young | 634bd7b | 2017-03-06 13:57:13 -0700 | [diff] [blame] | 158 | add_dependencies(loader-norm generate_helper_files loader_gen_files) |
Mark Young | 0f183a8 | 2017-02-28 09:58:04 -0700 | [diff] [blame] | 159 | |
Jon Ashburn | 761de4b | 2016-03-11 10:58:56 -0700 | [diff] [blame] | 160 | target_compile_options(loader-norm PUBLIC "$<$<CONFIG:DEBUG>:${LOCAL_C_FLAGS_DBG}>") |
| 161 | add_library(loader-opt OBJECT ${OPT_LOADER_SRCS}) |
Lenny Komow | 5ed93f2 | 2017-06-08 16:41:02 -0600 | [diff] [blame] | 162 | add_dependencies(loader-opt generate_helper_files loader_gen_files loader_asm_gen_files) |
Mark Young | 0f183a8 | 2017-02-28 09:58:04 -0700 | [diff] [blame] | 163 | |
Jon Ashburn | 761de4b | 2016-03-11 10:58:56 -0700 | [diff] [blame] | 164 | target_compile_options(loader-opt PUBLIC "$<$<CONFIG:DEBUG>:${LOCAL_C_FLAGS_REL}>") |
Lenny Komow | 7841316 | 2016-12-23 14:12:18 -0700 | [diff] [blame] | 165 | add_library(${API_LOWERCASE}-${MAJOR} SHARED $<TARGET_OBJECTS:loader-opt> $<TARGET_OBJECTS:loader-norm> ${CMAKE_CURRENT_BINARY_DIR}/${API_LOWERCASE}-${MAJOR}.def ${CMAKE_CURRENT_SOURCE_DIR}/loader.rc) |
Jon Ashburn | 761de4b | 2016-03-11 10:58:56 -0700 | [diff] [blame] | 166 | add_library(VKstatic.${MAJOR} STATIC $<TARGET_OBJECTS:loader-opt> $<TARGET_OBJECTS:loader-norm>) |
Karl Schultz | 80b8aca | 2017-01-24 14:44:26 -0800 | [diff] [blame] | 167 | # Suppress conflicting libs warning for debug builds. |
| 168 | set_target_properties(${API_LOWERCASE}-${MAJOR} PROPERTIES LINK_FLAGS_DEBUG /ignore:4098) |
David Pinedo | 0c08365 | 2015-07-09 12:44:38 -0600 | [diff] [blame] | 169 | set_target_properties(VKstatic.${MAJOR} PROPERTIES OUTPUT_NAME VKstatic.${MAJOR}) |
Slawomir Cygan | 9a2fa0e | 2017-07-03 16:47:52 +0200 | [diff] [blame] | 170 | target_link_libraries(${API_LOWERCASE}-${MAJOR} shlwapi Cfgmgr32) |
Lenny Komow | 5ed93f2 | 2017-06-08 16:41:02 -0600 | [diff] [blame] | 171 | add_dependencies(${API_LOWERCASE}-${MAJOR} generate_helper_files loader_gen_files loader_asm_gen_files) |
Mark Young | 0f183a8 | 2017-02-28 09:58:04 -0700 | [diff] [blame] | 172 | |
Nekotekina | 9244350 | 2016-07-08 15:49:13 +0300 | [diff] [blame] | 173 | target_link_libraries(VKstatic.${MAJOR} shlwapi) |
Mark Mueller | b33052d | 2016-04-18 11:04:36 -0600 | [diff] [blame] | 174 | if (CMAKE_GENERATOR MATCHES "^Visual Studio.*") |
Lenny Komow | 63fc169 | 2016-11-07 10:44:23 -0700 | [diff] [blame] | 175 | file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/${API_LOWERCASE}-${MAJOR}.dll COPY_SRC_PATH) |
Mark Mueller | b33052d | 2016-04-18 11:04:36 -0600 | [diff] [blame] | 176 | file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../demos/$<CONFIGURATION>/ COPY_DST_PATH) |
| 177 | file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../tests/$<CONFIGURATION>/ COPY_DST_TEST_PATH) |
| 178 | else() |
Lenny Komow | 63fc169 | 2016-11-07 10:44:23 -0700 | [diff] [blame] | 179 | file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/${API_LOWERCASE}-${MAJOR}.dll COPY_SRC_PATH) |
Mark Mueller | b33052d | 2016-04-18 11:04:36 -0600 | [diff] [blame] | 180 | file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../demos/ COPY_DST_PATH) |
| 181 | file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../tests/ COPY_DST_TEST_PATH) |
| 182 | endif() |
Lenny Komow | 63fc169 | 2016-11-07 10:44:23 -0700 | [diff] [blame] | 183 | add_custom_command(TARGET ${API_LOWERCASE}-${MAJOR} POST_BUILD |
Jon Ashburn | f8b3c89 | 2016-03-28 14:43:53 -0600 | [diff] [blame] | 184 | COMMAND xcopy /Y /I ${COPY_SRC_PATH} ${COPY_DST_PATH}) |
Lenny Komow | 63fc169 | 2016-11-07 10:44:23 -0700 | [diff] [blame] | 185 | add_custom_command(TARGET ${API_LOWERCASE}-${MAJOR} POST_BUILD |
Jon Ashburn | f8b3c89 | 2016-03-28 14:43:53 -0600 | [diff] [blame] | 186 | COMMAND xcopy /Y /I ${COPY_SRC_PATH} ${COPY_DST_TEST_PATH}) |
Jon Ashburn | fd679d8 | 2016-03-25 15:57:50 -0600 | [diff] [blame] | 187 | |
Jon Ashburn | bb7e35b | 2016-02-12 16:39:20 -0700 | [diff] [blame] | 188 | else() |
Jon Ashburn | ce816b6 | 2016-01-12 11:33:33 -0700 | [diff] [blame] | 189 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith") |
Ian Elliott | 1962880 | 2015-02-04 12:06:46 -0700 | [diff] [blame] | 190 | |
Mark Young | 0f183a8 | 2017-02-28 09:58:04 -0700 | [diff] [blame] | 191 | add_library(${API_LOWERCASE} SHARED ${NORMAL_LOADER_SRCS} ${OPT_LOADER_SRCS}) |
Lenny Komow | 5ed93f2 | 2017-06-08 16:41:02 -0600 | [diff] [blame] | 192 | add_dependencies(${API_LOWERCASE} generate_helper_files loader_gen_files loader_asm_gen_files) |
Karl Schultz | b4d31af | 2017-03-10 14:58:10 -0700 | [diff] [blame] | 193 | set_target_properties(${API_LOWERCASE} PROPERTIES SOVERSION "1" VERSION "1.0.${vk_header_version}") |
Lenny Komow | 63fc169 | 2016-11-07 10:44:23 -0700 | [diff] [blame] | 194 | target_link_libraries(${API_LOWERCASE} -ldl -lpthread -lm) |
Mark Young | 0f183a8 | 2017-02-28 09:58:04 -0700 | [diff] [blame] | 195 | |
Karl Schultz | 19b9e63 | 2017-06-12 11:23:57 -0600 | [diff] [blame] | 196 | if(INSTALL_LVL_FILES) |
| 197 | install(TARGETS ${API_LOWERCASE} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
| 198 | endif() |
Karl Schultz | b4d31af | 2017-03-10 14:58:10 -0700 | [diff] [blame] | 199 | |
| 200 | # Generate pkg-config file. |
| 201 | include(FindPkgConfig QUIET) |
| 202 | if(PKG_CONFIG_FOUND) |
| 203 | set(VK_API_VERSION "1.0.${vk_header_version}") |
| 204 | foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS}) |
| 205 | set(PRIVATE_LIBS "${PRIVATE_LIBS} -l${LIB}") |
| 206 | endforeach() |
| 207 | configure_file("vulkan.pc.in" "vulkan.pc" @ONLY) |
Karl Schultz | 19b9e63 | 2017-06-12 11:23:57 -0600 | [diff] [blame] | 208 | if(INSTALL_LVL_FILES) |
| 209 | install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vulkan.pc" |
| 210 | DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") |
| 211 | endif() |
Karl Schultz | b4d31af | 2017-03-10 14:58:10 -0700 | [diff] [blame] | 212 | endif() |
Ian Elliott | 2d4ab1e | 2015-01-13 17:52:38 -0700 | [diff] [blame] | 213 | endif() |