From b34d9ca7f72b675c8d0dc98f5108307e04de063d Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Thu, 12 Apr 2018 09:11:49 -0600 Subject: build: Add FindVulkan, disable layers, ldr, tsts Added FindVulkan cmake helper, disabled build of layers, loader, and tests in cmake file. Change-Id: I30a65e3a821c58b36971298ea6f7c7515cbda444 --- CMakeLists.txt | 113 +++++---------------------------------------------- demos/CMakeLists.txt | 22 +++++----- 2 files changed, 22 insertions(+), 113 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 77d1d34c..c42bcd0e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,12 @@ string(TOLOWER ${API_NAME} API_LOWERCASE) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") find_package(PythonInterp 3 REQUIRED) +# If CMAKE 3.7+, use FindVulkan +if (NOT CMAKE_VERSION VERSION_LESS 3.7.0) + message(STATUS "Using find_package to locate Vulkan") + find_package(Vulkan) +endif() + option(USE_CCACHE "Use ccache" OFF) if (USE_CCACHE) find_program(CCACHE_FOUND ccache) @@ -72,11 +78,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") find_package(Mir REQUIRED) endif() - # This option can be used to suppress the installation of artifacts from the - # Vulkan-LoaderAndValidationLayers repo while running "make install" for the - # VulkanTools and VulkanSamples repos. This can be used to prevent the - # overwriting of LVL artifacts when installing these downstream repos. - option(INSTALL_LVL_FILES "Install content from LoaderAndValidationLayers repo" ON) endif() set(SCRIPTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/scripts") @@ -150,15 +151,7 @@ else() endif() endif() -option(BUILD_LOADER "Build loader" ON) -option(BUILD_TESTS "Build tests" ON) -option(BUILD_LAYERS "Build layers" ON) option(BUILD_DEMOS "Build demos" ON) -if (APPLE) - option(BUILD_VKJSON "Build vkjson" OFF) -else() - option(BUILD_VKJSON "Build vkjson" ON) -endif() option(BUILD_ICD "Build icd" ON) option(CUSTOM_GLSLANG_BIN_ROOT "Use the user defined GLSLANG_BINARY_ROOT" OFF) option(CUSTOM_SPIRV_TOOLS_BIN_ROOT "Use the user defined SPIRV_TOOLS*BINARY_ROOT paths" OFF) @@ -271,6 +264,9 @@ find_library(SPIRV_TOOLS_LIB NAMES SPIRV-Tools find_library(SPIRV_TOOLS_OPT_LIB NAMES SPIRV-Tools-opt HINTS ${SPIRV_TOOLS_OPT_SEARCH_PATH} ) +find_library(Vulkan_LIBRARY NAMES vulkan-1 vulkan + HINTS ${VK_SDK_PATH} ) + if (WIN32) add_library(glslang STATIC IMPORTED) add_library(OGLCompiler STATIC IMPORTED) @@ -278,7 +274,7 @@ if (WIN32) add_library(HLSL STATIC IMPORTED) add_library(SPIRV STATIC IMPORTED) add_library(SPVRemapper STATIC IMPORTED) - add_library(Loader STATIC IMPORTED) +# add_library(Loader STATIC IMPORTED) add_library(SPIRV-Tools-opt STATIC IMPORTED) add_library(SPIRV-Tools STATIC IMPORTED) @@ -342,50 +338,6 @@ macro(run_vk_xml_generate dependency output) ) endmacro() -# Define macro used for generating header files containing commit IDs for external dependencies -macro(run_external_revision_generate source_dir symbol_name output) - add_custom_command(OUTPUT ${output} - # NOTE: If you modify this call to use --rev_file instead of --git_dir (to read the commit ID from a file instead of - # parsing from a Git repository), you probably also want to add the revision file to the list of DEPENDS on the - # subsequent line (to ensure that the script is re-run when the revision file is modified). - COMMAND ${PYTHON_CMD} ${SCRIPTS_DIR}/external_revision_generator.py --git_dir ${source_dir} -s ${symbol_name} -o ${output} - DEPENDS ${SCRIPTS_DIR}/external_revision_generator.py ${source_dir}/.git/HEAD ${source_dir}/.git/index - ) -endmacro() - -# Custom target for generated vulkan helper file dependencies -set(generate_helper_files_DEPENDS) -if(BUILD_LAYERS) - LIST(APPEND generate_helper_files_DEPENDS spirv_tools_commit_id.h) -endif() -add_custom_target(generate_helper_files DEPENDS - vk_enum_string_helper.h - vk_safe_struct.h - vk_safe_struct.cpp - vk_object_types.h - vk_layer_dispatch_table.h - vk_dispatch_table_helper.h - vk_extension_helper.h - vk_typemap_helper.h - ${generate_helper_files_DEPENDS} - ) -set_target_properties(generate_helper_files PROPERTIES FOLDER ${LVL_TARGET_FOLDER}) - -# Rules to build generated helper files -run_vk_xml_generate(loader_extension_generator.py vk_layer_dispatch_table.h) -run_vk_xml_generate(dispatch_table_helper_generator.py vk_dispatch_table_helper.h) -run_vk_xml_generate(helper_file_generator.py vk_safe_struct.h) -run_vk_xml_generate(helper_file_generator.py vk_safe_struct.cpp) -run_vk_xml_generate(helper_file_generator.py vk_enum_string_helper.h) -run_vk_xml_generate(helper_file_generator.py vk_object_types.h) -run_vk_xml_generate(helper_file_generator.py vk_extension_helper.h) -run_vk_xml_generate(helper_file_generator.py vk_typemap_helper.h) -if(BUILD_LAYERS) - run_external_revision_generate(${EXTERNAL_SOURCE_ROOT}/glslang/External/spirv-tools SPIRV_TOOLS_COMMIT_ID spirv_tools_commit_id.h) -endif() - - - if(NOT WIN32) include(GNUInstallDirs) @@ -402,7 +354,6 @@ endif() if(UNIX) if(INSTALL_LVL_FILES) install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vk_layer_dispatch_table.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/vulkan") endif() # uninstall target @@ -415,56 +366,12 @@ add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) endif() -# Layer Utils Library -# For Windows, we use a static lib because the Windows loader has a fairly restrictive loader search -# path that can't be easily modified to point it to the same directory that contains the layers. -set(VKLAYER_UTILS_VLF_SOURCES - layers/vk_layer_config.cpp - layers/vk_layer_extension_utils.cpp - layers/vk_layer_utils.cpp - layers/vk_format_utils.cpp - ) -if (WIN32) - add_library(VkLayer_utils STATIC ${VKLAYER_UTILS_VLF_SOURCES}) - target_compile_definitions(VkLayer_utils PUBLIC _CRT_SECURE_NO_WARNINGS) -else() - add_library(VkLayer_utils SHARED ${VKLAYER_UTILS_VLF_SOURCES}) - if(INSTALL_LVL_FILES) - install(TARGETS VkLayer_utils DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() -endif() -add_dependencies(VkLayer_utils generate_helper_files) -target_include_directories( - VkLayer_utils PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/loader - ${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan - ${CMAKE_CURRENT_BINARY_DIR} - ) - add_definitions(-DAPI_NAME="${API_NAME}") -# loader: Generic VULKAN ICD loader -# tests: VULKAN tests -if(BUILD_LOADER) - add_subdirectory(loader) -endif() - -if(BUILD_TESTS) - add_subdirectory(tests) -endif() - -if(BUILD_LAYERS) - add_subdirectory(layers) -endif() - if(BUILD_DEMOS) add_subdirectory(demos) endif() -if(BUILD_VKJSON) - add_subdirectory(libs/vkjson) -endif() - if(BUILD_ICD) add_subdirectory(icd) endif() diff --git a/demos/CMakeLists.txt b/demos/CMakeLists.txt index 34f58e36..ce9b62eb 100644 --- a/demos/CMakeLists.txt +++ b/demos/CMakeLists.txt @@ -87,9 +87,11 @@ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") if(WIN32) - set (LIBRARIES "${API_LOWERCASE}-${MAJOR}") +#### set (LIBRARIES "vulkan-1") + set (LIBRARIES "Vulkan::Vulkan") elseif(UNIX) - set (LIBRARIES "${API_LOWERCASE}") + set (LIBRARIES "Vulkan::Vulkan") +### set (LIBRARIES "vulkan") else() endif() @@ -129,8 +131,7 @@ add_custom_command( MAIN_DEPENDENCY ${PROJECT_SOURCE_DIR}/demos/cube.frag DEPENDS ${PROJECT_SOURCE_DIR}/demos/cube.frag ${GLSLANG_VALIDATOR} ) - -include_directories(${CMAKE_CURRENT_BINARY_DIR}) +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) if(WIN32) @@ -150,20 +151,21 @@ include_directories( ###################################################################################### # vulkaninfo if(WIN32) - add_executable(${API_LOWERCASE}info vulkaninfo.c vulkaninfo.rc) + add_executable(vulkaninfo vulkaninfo.c vulkaninfo.rc) elseif(APPLE) - add_executable(${API_LOWERCASE}info vulkaninfo.c - ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo/metal_view.m - ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo/metal_view.h) + add_executable(vulkaninfo vulkaninfo.c + ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo/metal_view.m + ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo/metal_view.h + ) else() - add_executable(${API_LOWERCASE}info vulkaninfo.c) + add_executable(vulkaninfo vulkaninfo.c) endif() if(APPLE) target_link_libraries(${API_LOWERCASE}info ${LIBRARIES} "-framework AppKit -framework QuartzCore") target_include_directories(${API_LOWERCASE}info PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo) else() - target_link_libraries(${API_LOWERCASE}info ${LIBRARIES}) + target_link_libraries(vulkaninfo Vulkan::Vulkan) endif() if(APPLE) -- cgit v1.2.3