From dc000d53caf8135deb7e2e3e58138b154838b4cb Mon Sep 17 00:00:00 2001 From: Karl Schultz Date: Thu, 7 Jun 2018 16:55:11 -0600 Subject: [PATCH] repo: Remove interim REPO_ROOT CMake code And a few other misc cleanups --- BUILD.md | 9 +++-- CMakeLists.txt | 83 +++++++++++++++-------------------------------- cube/CMakeLists.txt | 32 ------------------ vulkaninfo/CMakeLists.txt | 23 ------------- 4 files changed, 31 insertions(+), 116 deletions(-) diff --git a/BUILD.md b/BUILD.md index b8f3a72..4b6eed8 100644 --- a/BUILD.md +++ b/BUILD.md @@ -240,7 +240,7 @@ to further customize your installation. To uninstall the files from the system directories, you can execute: - sudo make uninstall-Vulkan-Tools + sudo make uninstall ### Linux Tests @@ -475,8 +475,7 @@ Vulkan Loader Library - Building the cube and vulkaninfo applications require linking to the Vulkan Loader Library (libvulkan.1.dylib) - The following option should be used on the cmake command line to specify a vulkan loader library: - LOADER_REPO_ROOT=/absolute_path_to/Vulkan-Loader making sure to specify an absolute path, like so: - cmake -DLOADER_REPO_ROOT=/absolute_path_to/Vulkan-Loader .... + VULKAN_LOADER_INSTALL_DIR=/absolute_path_to/Vulkan-Loader_install_dir making sure to specify an absolute path. ### MacOS build @@ -496,7 +495,7 @@ build is: mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=Debug -DLOADER_REPO_ROOT=/absolute_path_to/Vulkan-Loader -DMOLTENVK_REPO_ROOT=/absolute_path_to/MoltenVK .. + cmake -DCMAKE_BUILD_TYPE=Debug -DVULKAN_LOADER_INSTALL_DIR=/absolute_path_to/Vulkan-Loader_install_dir -DMOLTENVK_REPO_ROOT=/absolute_path_to/MoltenVK .. make To speed up the build on a multi-core machine, use the `-j` option for `make` @@ -578,7 +577,7 @@ To create and open an Xcode project: mkdir build-xcode cd build-xcode - cmake -DLOADER_REPO_ROOT=/absolute_path_to/Vulkan-Loader -DMOLTENVK_REPO_ROOT=/absolute_path_to/MoltenVK -GXcode .. + cmake -DVULKAN_LOADER_INSTALL_DIR=/absolute_path_to/Vulkan-Loader_install_dir -DMOLTENVK_REPO_ROOT=/absolute_path_to/MoltenVK -GXcode .. open VULKAN.xcodeproj Within Xcode, you can select Debug or Release builds in the project's Build Settings. diff --git a/CMakeLists.txt b/CMakeLists.txt index ad90d17..d44a50b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,11 +3,23 @@ cmake_minimum_required(VERSION 2.8.11) # This must come before the project command. set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12" CACHE STRING "Minimum OS X deployment version") -project (Vulkan-Tools) -# set (CMAKE_VERBOSE_MAKEFILE 1) +project(Vulkan-Tools) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +option(BUILD_CUBE "Build cube" ON) +option(BUILD_VULKANINFO "Build vulkaninfo" ON) +option(BUILD_ICD "Build icd" ON) +# Installing the Mock ICD to system directories is probably not desired since +# this ICD is not a very complete implementation. +# Require the user to ask that it be installed if they really want it. +option(INSTALL_ICD "Install icd" OFF) + +# Enable IDE GUI folders +set_property(GLOBAL PROPERTY USE_FOLDERS ON) +# "Helper" targets that don't have interesting source code should set their FOLDER property to this +set(TOOLS_TARGET_FOLDER "Helper Targets") + # Find Vulkan Headers and Loader # Search order: # User-supplied CMAKE_PREFIX_PATH containing paths to the header and/or loader install dirs @@ -16,7 +28,8 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") # Fallback to FindVulkan operation using SDK install or system installed components. set(VULKAN_HEADERS_INSTALL_DIR "HEADERS-NOTFOUND" CACHE PATH "Absolute path to a Vulkan-Headers install directory") set(VULKAN_LOADER_INSTALL_DIR "LOADER-NOTFOUND" CACHE PATH "Absolute path to a Vulkan-Loader install directory") -set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${VULKAN_HEADERS_INSTALL_DIR};${VULKAN_LOADER_INSTALL_DIR};$ENV{VULKAN_HEADERS_INSTALL_DIR};$ENV{VULKAN_LOADER_INSTALL_DIR}) +set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${VULKAN_HEADERS_INSTALL_DIR};${VULKAN_LOADER_INSTALL_DIR}; + $ENV{VULKAN_HEADERS_INSTALL_DIR};$ENV{VULKAN_LOADER_INSTALL_DIR}) message(STATUS "Using find_package to locate Vulkan") find_package(Vulkan) # "Vulkan::Vulkan" on macOS causes the framework to be linked to the app instead of an individual library @@ -25,12 +38,23 @@ message(STATUS "Vulkan FOUND = ${Vulkan_FOUND}") message(STATUS "Vulkan Include = ${Vulkan_INCLUDE_DIR}") message(STATUS "Vulkan Lib = ${Vulkan_LIBRARY}") +# Install-related settings include(GNUInstallDirs) # Set a better default install location for Windows only if the user did not provide one. if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND WIN32) set (CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "default install path" FORCE ) endif() +# uninstall target +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) + +add_custom_target(uninstall + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) +set_target_properties(uninstall PROPERTIES FOLDER ${TOOLS_TARGET_FOLDER}) + if(APPLE) # CMake versions 3 or later need CMAKE_MACOSX_RPATH defined. # This avoids the CMP0042 policy message. @@ -39,10 +63,6 @@ if(APPLE) set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}) endif() -# Enable cmake folders -set_property(GLOBAL PROPERTY USE_FOLDERS ON) -set(TOOLS_TARGET_FOLDER "Helper Targets") - if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang") set(COMMON_COMPILE_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers") set(COMMON_COMPILE_FLAGS "${COMMON_COMPILE_FLAGS} -fno-strict-aliasing -fno-builtin-memcmp") @@ -65,55 +85,6 @@ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang") endif() endif() -if(NOT WIN32) - set (BUILDTGT_DIR build) - set (BINDATA_DIR Bin) - set (LIBSOURCE_DIR Lib) -else() - # For Windows, since 32-bit and 64-bit items can co-exist, we build each in its own build directory. - # 32-bit target data goes in build32, and 64-bit target data goes into build. So, include/link the - # appropriate data at build time. - if (DISABLE_BUILDTGT_DIR_DECORATION) - set (BUILDTGT_DIR "") - set (BINDATA_DIR "") - set (LIBSOURCE_DIR "") - elseif (CMAKE_CL_64) - set (BUILDTGT_DIR build) - set (BINDATA_DIR Bin) - set (LIBSOURCE_DIR Lib) - else() - set (BUILDTGT_DIR build32) - set (BINDATA_DIR Bin32) - set (LIBSOURCE_DIR Lib32) - endif() - if(DISABLE_BUILD_PATH_DECORATION) - set (DEBUG_DECORATION "") - set (RELEASE_DECORATION "") - else() - set (DEBUG_DECORATION "Debug") - set (RELEASE_DECORATION "Release") - endif() - -endif() - -option(BUILD_CUBE "Build cube" ON) -option(BUILD_VULKANINFO "Build vulkaninfo" ON) -option(BUILD_ICD "Build icd" ON) -# Installing the Mock ICD to system directories is probably not desired since -# this ICD is not a very complete implementation. -# Require the user to ask that it be installed if they really want it. -option(INSTALL_ICD "Install icd" OFF) - -# uninstall target -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY) - -add_custom_target(uninstall-Vulkan-Tools - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) -set_target_properties(uninstall-Vulkan-Tools PROPERTIES FOLDER ${TOOLS_TARGET_FOLDER}) - if(APPLE) include(mac_common.cmake) endif() diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt index 5c1ff59..a2c3aba 100644 --- a/cube/CMakeLists.txt +++ b/cube/CMakeLists.txt @@ -140,33 +140,6 @@ endif() set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") -# LOADER_REPO_ROOT is going away soon -# Predefine loader root as a cmake cache variable for cmake-gui -set(LOADER_REPO_ROOT "LOADER-NOTFOUND" CACHE PATH "Absolute path to the root of the loader repository") - -if(LOADER_REPO_ROOT) - message(STATUS "Using user-supplied path to locate Vulkan") - if(WIN32) - set (LOADER_SEARCH_PATHS - "${LOADER_REPO_ROOT}/${BUILDTGT_DIR}/loader/${DEBUG_DECORATION}" - "${LOADER_REPO_ROOT}/${BUILDTGT_DIR}/loader/${RELEASE_DECORATION}" - "${LOADER_REPO_ROOT}/lib" - "${LOADER_REPO_ROOT}/lib32" - ) - else() - set (LOADER_SEARCH_PATHS - "${LOADER_REPO_ROOT}/${BUILDTGT_DIR}/loader" - "${LOADER_REPO_ROOT}/x86_64/lib" - "${LOADER_REPO_ROOT}/source/lib" - ) - endif() - - find_library(LIBVK NAMES vulkan vulkan-1 - HINTS ${LOADER_SEARCH_PATHS} - ) - message(STATUS "Found Vulkan: ${LIBVK}") -endif() - if(WIN32) # Use static MSVCRT libraries foreach(configuration in CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO @@ -201,11 +174,6 @@ if(WIN32) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES") endif() -# MacOS setup -#if(APPLE) -# include(macOS/common.cmake) -#endif() - include_directories( ${CUBE_INCLUDE_DIRS} ) diff --git a/vulkaninfo/CMakeLists.txt b/vulkaninfo/CMakeLists.txt index 6a9d76e..0b39992 100644 --- a/vulkaninfo/CMakeLists.txt +++ b/vulkaninfo/CMakeLists.txt @@ -42,29 +42,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") endif() endif() -# LOADER_REPO_ROOT is going away soon -# Predefine loader root as a cmake cache variable for cmake-gui -set(LOADER_REPO_ROOT "LOADER-NOTFOUND" CACHE PATH "Absolute path to the root of the loader repository") - -if(LOADER_REPO_ROOT) - message(STATUS "Using user-supplied path to locate Vulkan") - if(WIN32) - set (LOADER_SEARCH_PATHS - "${LOADER_REPO_ROOT}/${BUILDTGT_DIR}/loader/${DEBUG_DECORATION}" - "${LOADER_REPO_ROOT}/${BUILDTGT_DIR}/loader/${RELEASE_DECORATION}" - ) - else() - set (LOADER_SEARCH_PATHS - "${LOADER_REPO_ROOT}/${BUILDTGT_DIR}/loader" - ) - endif() - - find_library(LIBVK NAMES vulkan vulkan-1 - HINTS ${LOADER_SEARCH_PATHS} - ) - message(STATUS "Found Vulkan: ${LIBVK}") -endif() - if(APPLE) # We do this so vulkaninfo is linked to an individual library and NOT a framework. target_link_libraries(vulkaninfo ${Vulkan_LIBRARY} "-framework AppKit -framework QuartzCore") -- 2.7.4