# Path which points to directory with interface for framework.
set(CLDNN__API_DIR "${CMAKE_CURRENT_SOURCE_DIR}/api")
+# Path which points to directory with interface extension for framework.
+set(CLDNN__API_EXTENSION_DIR "${CMAKE_CURRENT_SOURCE_DIR}/api_extension")
+
# Path which points to directory with interface for framework.
set(CLDNN__KERNEL_SELECTOR_DIR "${CMAKE_CURRENT_SOURCE_DIR}/kernel_selector")
if(DEFINED CLDNN__OUTPUT_DIR)
set(CLDNN__OUTPUT_BIN_DIR "${CLDNN__OUTPUT_DIR}" CACHE PATH "Output directory path where the final exetuables, examples and tests will be stored.")
set(CLDNN__OUTPUT_LIB_DIR "${CLDNN__OUTPUT_DIR}" CACHE PATH "Output directory path where the final libraries will be stored.")
-else()
+elseif(NOT DEFINED CLDNN__OUTPUT_BIN_DIR AND NOT DEFINED CLDNN__OUTPUT_LIB_DIR)
# Output directory path where the final libraries, examples and tests will be stored.
if(CLDNN__MULTI_CFG_GEN)
# Multi-configuration generators automatically append build type subdirectory.
# ======================================================================================================
+# Include and build: Core Internal Tests (unit tests and small acceptance tests) for core internal clDNN framework mechanisms.
+set(CLDNN__INCLUDE_CORE_INTERNAL_TESTS ON CACHE BOOL "Include and build: clDNN framework's core internal tests.")
+mark_as_advanced(CLDNN__INCLUDE_CORE_INTERNAL_TESTS)
+
+# ======================================================================================================
+
+
# Include and build: clDNN tutorial.
set(CLDNN__INCLUDE_TUTORIAL ON CACHE BOOL "Include and build: clDNN Tutorial.")
mark_as_advanced(CLDNN__INCLUDE_TUTORIAL)
# ======================================================================================================
+# Run (requires CLDNN__INCLUDE_CORE_INTERNAL_TESTS to be true): Tests (unit tests and small acceptance core internal tests) for clDNN framework.
+set(CLDNN__RUN_CORE_INTERNAL_TESTS OFF CACHE BOOL "Run: clDNN framework's core internal tests.")
+mark_as_advanced(CLDNN__RUN_CORE_INTERNAL_TESTS)
+
+# ======================================================================================================
+
# Compile / Link: Use static C++ Runtime library.
set(CLDNN__COMPILE_LINK_USE_STATIC_RUNTIME OFF CACHE BOOL "Compile / Link: Use static version of C++ Runtime library instead of shared one.")
mark_as_advanced(CLDNN__COMPILE_LINK_USE_STATIC_RUNTIME)
# ======================================================================================================
+# Checking whether tests can be run.
+if((NOT CLDNN__INCLUDE_CORE_INTERNAL_TESTS) AND CLDNN__RUN_CORE_INTERNAL_TESTS)
+ message(WARNING "[clDNN] CLDNN__INCLUDE_CORE_INTERNAL_TESTS: Selected running of core internal tests, but test are not built. Option will be disabled.")
+ set(CLDNN__RUN_CORE_INTERNAL_TESTS OFF)
+endif()
+
+# ======================================================================================================
+
# Check for python 2.7 interpreter (required tool).
find_package(PythonInterp 2.7)
if(NOT PYTHONINTERP_FOUND)
unset(__CLDNN_IOclIcdVersionIdx)
+# ======================================================================================================
+set(CLDNN_UTILS__RAPIDJSON_INCDIRS "utils/rapidjson" CACHE INTERNAL "Paths to interface headers for rapidjson.")
# ====================================== Version Calculation ===========================================
if(EXISTS "${CLDNN__VERSION_FILE_NAME}")
message(STATUS "[clDNN]")
message(STATUS "[clDNN] Advanced:")
if (CLDNN__IOCL_ICD_USE_EXTERNAL)
- message(STATUS "[clDNN] - ICD version used to build: N/A (installed externally)")
+ message(STATUS "[clDNN] - ICD version used to build: N/A (installed externally)")
else()
- message(STATUS "[clDNN] - ICD version used to build: ${CLDNN__IOCL_ICD_VERSION}")
+ message(STATUS "[clDNN] - ICD version used to build: ${CLDNN__IOCL_ICD_VERSION}")
endif()
message(STATUS "[clDNN]")
-message(STATUS "[clDNN] - Include/Build cldnn core: ${CLDNN__INCLUDE_CORE}")
-message(STATUS "[clDNN] - Include/Build kernel selector: ${CLDNN__INCLUDE_KERNEL_SELECTOR}")
-message(STATUS "[clDNN] - Include/Build tests: ${CLDNN__INCLUDE_TESTS}")
-message(STATUS "[clDNN] - Include/Build tutorial: ${CLDNN__INCLUDE_TUTORIAL}")
+message(STATUS "[clDNN] - Include/Build cldnn core: ${CLDNN__INCLUDE_CORE}")
+message(STATUS "[clDNN] - Include/Build kernel selector: ${CLDNN__INCLUDE_KERNEL_SELECTOR}")
+message(STATUS "[clDNN] - Include/Build tests: ${CLDNN__INCLUDE_TESTS}")
+message(STATUS "[clDNN] - Include/Build core internal tests: ${CLDNN__INCLUDE_CORE_INTERNAL_TESTS}")
+message(STATUS "[clDNN] - Include/Build tutorial: ${CLDNN__INCLUDE_TUTORIAL}")
message(STATUS "[clDNN]")
message(STATUS "[clDNN] - Run tests: ${CLDNN__RUN_TESTS}")
+message(STATUS "[clDNN] - Run core internal tests: ${CLDNN__RUN_CORE_INTERNAL_TESTS}")
message(STATUS "[clDNN]")
message(STATUS "[clDNN] - Use static C++ Runtime: ${CLDNN__COMPILE_LINK_USE_STATIC_RUNTIME}")
message(STATUS "[clDNN] - Allow unsafe size opts: ${CLDNN__COMPILE_LINK_ALLOW_UNSAFE_SIZE_OPT}")
# Old.
set(EXECUTABLE_OUTPUT_PATH "${CLDNN__OUTPUT_BIN_DIR}")
-set(LIBRARY_OUTPUT_PATH "${CLDNN__OUTPUT_BIN_DIR}")
+set(LIBRARY_OUTPUT_PATH "${CLDNN__OUTPUT_LIB_DIR}")
# New.
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CLDNN__OUTPUT_LIB_DIR}")
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CLDNN__OUTPUT_BIN_DIR}")
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CLDNN__OUTPUT_LIB_DIR}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CLDNN__OUTPUT_BIN_DIR}")
if(__CLDNN_TargetOs MATCHES "^Darwin$")
set(CMAKE_INSTALL_RPATH "@executable_path")
else()
- set(CMAKE_INSTALL_RPATH "$ORIGIN")
+ set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")
endif()
unset(__CLDNN_TargetOs)
SET_RAW
-Wl,-z,noexecstack,-z,relro,-z,now
)
+ list(APPEND CLDNN__SYSTEM_LINK_LIBRARIES "dl")
endif()
if((CMAKE_C_COMPILER_ID MATCHES "^Clang$") OR (CMAKE_CXX_COMPILER_ID MATCHES "^Clang$"))
-Wl,-headerpad_max_install_names
)
- list(APPEND CLDNN__SYSTEM_LINK_LIBRARIES "c++" "c++abi" "supc++")
+ list(APPEND CLDNN__SYSTEM_LINK_LIBRARIES "c++" "c++abi" "supc++" "dl")
endif()
unset(__CLDNN_LinkerFlagName)
include_directories(
${CLDNN__IOCL_ICD_INCDIRS}
+ ${CLDNN_UTILS__RAPIDJSON_INCDIRS}
"${CLDNN__KHR_CLHPP_DIR}"
"${CLDNN__CODEGEN_INCDIR}"
)
if(CLDNN__INCLUDE_TESTS)
add_subdirectory(tests)
endif()
+if(CLDNN__INCLUDE_CORE_INTERNAL_TESTS)
+ add_subdirectory(tests_core_internal)
+endif()
if(CLDNN__INCLUDE_KERNEL_SELECTOR)
add_subdirectory(kernel_selector)
endif()