aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2018-04-11 15:15:31 -0600
committerMark Lobodzinski <mark@lunarg.com>2018-05-11 20:10:23 -0600
commita38c5c82909a579170bf8f940dda89161a5e29f7 (patch)
treefe3555c62b727217035180604a81ef156e174c2f
parent6e590c31d0ceaf3edc717d4e79aacc9afed46f5c (diff)
downloadusermoji-a38c5c82909a579170bf8f940dda89161a5e29f7.tar.xz
cmake: Clean up main cmakelists.txt file
Delete unnecessary cmake, move non-common stuff to consitituent cmake files. Change-Id: I158c50511a2b9810f6b2fa198d4d8aee5a23ac93
-rw-r--r--CMakeLists.txt88
-rw-r--r--cube/CMakeLists.txt11
-rw-r--r--icd/CMakeLists.txt21
3 files changed, 25 insertions, 95 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 97486d6a..02737c02 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,15 +9,7 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12" CACHE STRING "Minimum OS X deployment ve
project (VULKAN)
# set (CMAKE_VERBOSE_MAKEFILE 1)
-# The API_NAME allows renaming builds to avoid conflicts with installed SDKs
-# The MAJOR number of the version we're building, used in naming
-# <api-name>-<major>.dll (and other files).
-set(API_NAME "Vulkan" CACHE STRING "API name to use when building")
-set(MAJOR "1")
-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)
@@ -25,15 +17,6 @@ if (NOT CMAKE_VERSION VERSION_LESS 3.7.0)
find_package(Vulkan)
endif()
-option(USE_CCACHE "Use ccache" OFF)
-if (USE_CCACHE)
- find_program(CCACHE_FOUND ccache)
- if(CCACHE_FOUND)
- set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
- set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
- endif(CCACHE_FOUND)
-endif()
-
if(APPLE)
# CMake versions 3 or later need CMAKE_MACOSX_RPATH defined.
# This avoids the CMP0042 policy message.
@@ -44,10 +27,7 @@ endif()
# Enable cmake folders
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
-set(LVL_TARGET_FOLDER lvl_cmake_targets)
-
-# Move to ICD
-set(SCRIPTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/scripts")
+set(TOOLS_TARGET_FOLDER lvl_cmake_targets)
# Header file for CMake settings
include_directories("${PROJECT_SOURCE_DIR}/include")
@@ -74,74 +54,10 @@ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
endif()
endif()
-if(WIN32)
- # Treat warnings as errors
- add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/WX>")
- # Disable RTTI
- add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/GR->")
- # Warn about nested declarations
- add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/w34456>")
- # Warn about potentially uninitialized variables
- add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/w34701>")
- add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/w34703>")
- # Warn about different indirection types.
- add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/w34057>")
- # Warn about signed/unsigned mismatch.
- add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/w34245>")
-endif()
-
-if(NOT WIN32)
- set (BUILDTGT_DIR build)
- set (BINDATA_DIR Bin)
- set (LIBSOURCE_DIR Lib)
-else()
- # is WIN32
- option(DISABLE_BUILD_PATH_DECORATION "Disable the decoration of the gslang and SPIRV-Tools build path with MSVC build type info" OFF)
- option(DISABLE_BUILDTGT_DIR_DECORATION "Disable the decoration of the gslang and SPIRV-Tools build path with target info" OFF)
- option(ENABLE_WIN10_ONECORE "Link the loader with OneCore umbrella libraries" OFF)
-
- # 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()
-endif()
-
option(BUILD_CUBE "Build cube" ON)
option(BUILD_VULKANINFO "Build vulkaninfo" ON)
option(BUILD_ICD "Build icd" ON)
-find_program(GLSLANG_VALIDATOR NAMES glslangValidator
- HINTS "${EXTERNAL_SOURCE_ROOT}/glslang/${BUILDTGT_DIR}/install/bin"
- "${GLSLANG_BINARY_ROOT}/StandAlone"
- "${PROJECT_SOURCE_DIR}/external/${BINDATA_DIR}")
-
-find_library(Vulkan_LIBRARY NAMES vulkan-1 vulkan
- HINTS ${VK_SDK_PATH} )
-
-
-set (PYTHON_CMD ${PYTHON_EXECUTABLE})
-
-# Move to icd dir
-# Define macro used for building vkxml generated files
-macro(run_vk_xml_generate dependency output)
- add_custom_command(OUTPUT ${output}
- COMMAND ${PYTHON_CMD} ${SCRIPTS_DIR}/lvl_genvk.py -registry ${SCRIPTS_DIR}/vk.xml ${output}
- DEPENDS ${SCRIPTS_DIR}/vk.xml ${SCRIPTS_DIR}/generator.py ${SCRIPTS_DIR}/${dependency} ${SCRIPTS_DIR}/lvl_genvk.py ${SCRIPTS_DIR}/reg.py
- )
-endmacro()
-
if(UNIX)
if(INSTALL_LVL_FILES)
install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
@@ -157,8 +73,6 @@ if(UNIX)
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif()
-add_definitions(-DAPI_NAME="${API_NAME}")
-
if(BUILD_CUBE)
add_subdirectory(cube)
endif()
diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt
index d437cf8f..92a9a3f2 100644
--- a/cube/CMakeLists.txt
+++ b/cube/CMakeLists.txt
@@ -3,6 +3,12 @@ set(CUBE_INCLUDE_DIRS
${CMAKE_CURRENT_BINARY_DIR}/..
)
+find_program(GLSLANG_VALIDATOR NAMES glslangValidator
+ HINTS "${EXTERNAL_SOURCE_ROOT}/glslang/${BUILDTGT_DIR}/install/bin"
+ "$ENV{VK_SDK_PATH}/bin"
+ "${GLSLANG_BINARY_ROOT}/StandAlone"
+ "${PROJECT_SOURCE_DIR}/external/${BINDATA_DIR}")
+
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
include(FindPkgConfig)
option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
@@ -40,10 +46,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /guard:cf")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /guard:cf")
endif()
- set(CUBE_INCLUDE_DIRS
- "${PROJECT_SOURCE_DIR}/icd/common"
- ${CUBE_INCLUDE_DIRS}
- )
elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
@@ -97,7 +99,6 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
message( FATAL_ERROR "Unrecognized value for CUBE_WSI_SELECTION: ${CUBE_WSI_SELECTION}" )
endif()
- include_directories ("${PROJECT_SOURCE_DIR}/icd/common")
link_libraries(${API_LOWERCASE} m)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
add_definitions(-DVK_USE_PLATFORM_MACOS_MVK)
diff --git a/icd/CMakeLists.txt b/icd/CMakeLists.txt
index 21e5b8ce..acc82eee 100644
--- a/icd/CMakeLists.txt
+++ b/icd/CMakeLists.txt
@@ -1,4 +1,19 @@
cmake_minimum_required (VERSION 2.8.11)
+
+find_package(PythonInterp 3 REQUIRED)
+
+set(SCRIPTS_DIR "${PROJECT_SOURCE_DIR}/scripts")
+
+set (PYTHON_CMD ${PYTHON_EXECUTABLE})
+
+# Define macro used for building vk.xml generated files
+macro(run_vk_xml_generate dependency output)
+ add_custom_command(OUTPUT ${output}
+ COMMAND ${PYTHON_CMD} ${SCRIPTS_DIR}/lvl_genvk.py -registry ${SCRIPTS_DIR}/vk.xml ${output}
+ DEPENDS ${SCRIPTS_DIR}/vk.xml ${SCRIPTS_DIR}/generator.py ${SCRIPTS_DIR}/${dependency} ${SCRIPTS_DIR}/lvl_genvk.py ${SCRIPTS_DIR}/reg.py
+ )
+endmacro()
+
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_definitions(-DVK_USE_PLATFORM_WIN32_KHR -DVK_USE_PLATFORM_WIN32_KHX -DWIN32_LEAN_AND_MEAN)
set(DisplayServer Win32)
@@ -39,7 +54,7 @@ if (WIN32)
COMMAND copy ${src_json} ${dst_json}
VERBATIM
)
- set_target_properties(${config_file}-json PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+ set_target_properties(${config_file}-json PROPERTIES FOLDER ${TOOLS_TARGET_FOLDER})
endforeach(config_file)
else()
foreach (config_file ${ICD_JSON_FILES})
@@ -95,7 +110,7 @@ add_custom_target(generate_icd_files DEPENDS
mock_icd.h
mock_icd.cpp
)
-set_target_properties(generate_icd_files PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+set_target_properties(generate_icd_files PROPERTIES FOLDER ${TOOLS_TARGET_FOLDER})
if (WIN32)
macro(add_vk_icd target)
@@ -104,7 +119,7 @@ if (WIN32)
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DEF_FILE} VkICD_${target}.def
VERBATIM
)
- set_target_properties(copy-${target}-def-file PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+ set_target_properties(copy-${target}-def-file PROPERTIES FOLDER ${TOOLS_TARGET_FOLDER})
add_library(VkICD_${target} SHARED ${ARGN} VkICD_${target}.def)
add_dependencies(VkICD_${target} generate_helper_files generate_icd_files)
#target_link_Libraries(VkICD_${target} VkICD_utils)