# dEQP cmake file
# Module FindGit requires cmake >= 2.8.2
-cmake_minimum_required(VERSION 2.8.2)
+cmake_minimum_required(VERSION 3.0)
find_package(Git)
+find_package(PythonInterp 3)
# dEQP Target.
set(DEQP_TARGET "default" CACHE STRING "dEQP Target (default, android...)")
# spirv-tools
add_subdirectory(external/spirv-tools)
+# spirv-headers
+set(SPIRV_INCLUDE_PATH "${PROJECT_SOURCE_DIR}/external/spirv-headers/src/include")
+if (NOT EXISTS ${SPIRV_INCLUDE_PATH})
+ message(FATAL_ERROR "SPIR-V headers not found, please run external/fetch_sources.py")
+endif()
+include_directories(${SPIRV_INCLUDE_PATH})
+
+# Amber
+add_subdirectory(external/amber)
+include_directories(external/amber)
+
+# RenderDoc API
+include_directories(external/renderdoc/src)
+
include_directories(${PNG_INCLUDE_PATH})
message(STATUS "DEQP_TARGET_NAME = ${DEQP_TARGET_NAME}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_SCL_SECURE_NO_WARNINGS")
endif ()
+# Precompiled header macro. Parameters are source file list and filename for pch cpp file.
+macro(PCH SRCS PCHCPP)
+ if(MSVC AND CMAKE_GENERATOR MATCHES "^Visual Studio")
+ set(PCH_NAME "$(IntDir)\\pch.pch")
+ # make source files use/depend on PCH_NAME
+ set_source_files_properties(${${SRCS}} PROPERTIES COMPILE_FLAGS "/Yupch.h /FIpch.h /Fp${PCH_NAME}" OBJECT_DEPENDS "${PCH_NAME}")
+ # make PCHCPP file compile and generate PCH_NAME
+ set_source_files_properties(${PCHCPP} PROPERTIES COMPILE_FLAGS "/Ycpch.h /Fp${PCH_NAME}" OBJECT_OUTPUTS "${PCH_NAME}")
+ list(APPEND ${SRCS} "${PCHCPP}")
+ endif()
+endmacro(PCH)
+
# delibs projects
add_subdirectory(framework/delibs/debase)
add_subdirectory(framework/delibs/depool)
add_library(deqp SHARED ${DEQP_SRCS})
target_link_libraries(deqp ${DEQP_LIBS})
+ # Separate out the debug information because it's enormous
+ add_custom_command(TARGET deqp POST_BUILD
+ COMMAND ${CMAKE_STRIP} --only-keep-debug -o $<TARGET_FILE:deqp>.debug $<TARGET_FILE:deqp>
+ COMMAND ${CMAKE_STRIP} -g $<TARGET_FILE:deqp>)
+
# Needed by OpenGL CTS that defines its own activity but depends on
# common Android support code.
target_include_directories(deqp PRIVATE framework/platform/android)