Downgraded CMake minimum version to 3.14 from 3.15
Signed-off-by: Fabian Sauter <sauter.fabian@mailbox.org>
This commit is contained in:
parent
a86736e332
commit
dab8492376
14 changed files with 151 additions and 137 deletions
|
|
@ -1,7 +1,7 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
project(kompute VERSION 1.8.1 LANGUAGES CXX)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
project(kompute VERSION 0.8.1 LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
|
||||
|
|
@ -22,49 +22,58 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}")
|
|||
|
||||
set(KOMPUTE_LIBRARIES kompute CACHE INTERNAL "")
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Options
|
||||
#####################################################
|
||||
|
||||
# ####################################################
|
||||
macro(kompute_option OPTION_NAME OPTION_TEXT OPTION_DEFAULT)
|
||||
option(${OPTION_NAME} ${OPTION_TEXT} ${OPTION_DEFAULT})
|
||||
|
||||
if(DEFINED ENV{${OPTION_NAME}})
|
||||
# Allow overriding the option through an environment variable
|
||||
set(${OPTION_NAME} $ENV{${OPTION_NAME}})
|
||||
endif()
|
||||
|
||||
if(${OPTION_NAME})
|
||||
add_definitions(-D${OPTION_NAME})
|
||||
endif()
|
||||
|
||||
message(STATUS " ${OPTION_NAME}: ${${OPTION_NAME}}")
|
||||
endmacro()
|
||||
|
||||
macro(kompute_log_level OPTION_NAME OPTION_TEXT OPTION_DEFAULT)
|
||||
set(${OPTION_NAME} ${OPTION_DEFAULT} CACHE STRING ${OPTION_TEXT})
|
||||
set_property(CACHE ${OPTION_NAME} PROPERTY STRINGS "Trace" "Debug" "Info" "Warn" "Error" "Critical")
|
||||
|
||||
if(DEFINED ENV{${OPTION_NAME}})
|
||||
# Allow setting the option through an environment variable
|
||||
set(${OPTION_NAME} $ENV{${OPTION_NAME}})
|
||||
endif()
|
||||
|
||||
if(${OPTION_NAME})
|
||||
add_definitions(-D${OPTION_NAME})
|
||||
endif()
|
||||
|
||||
message(STATUS " ${OPTION_NAME}: ${${OPTION_NAME}}")
|
||||
endmacro()
|
||||
|
||||
macro(kompute_option_string OPTION_NAME OPTION_TEXT OPTION_DEFAULT)
|
||||
set(${OPTION_NAME} ${OPTION_DEFAULT} CACHE STRING ${OPTION_TEXT})
|
||||
|
||||
if(DEFINED ENV{${OPTION_NAME}})
|
||||
# Allow setting the option through an environment variable
|
||||
set(${OPTION_NAME} $ENV{${OPTION_NAME}})
|
||||
endif()
|
||||
|
||||
if(${OPTION_NAME})
|
||||
add_definitions(-D${OPTION_NAME})
|
||||
endif()
|
||||
|
||||
message(STATUS " ${OPTION_NAME}: ${${OPTION_NAME}}")
|
||||
endmacro()
|
||||
|
||||
message(STATUS "General purpose GPU compute framework built on Vulkan")
|
||||
message(STATUS "=======================================================")
|
||||
|
||||
# Enable or disable targets
|
||||
kompute_option(KOMPUTE_OPT_BUILD_TESTS "Enable if you want to build tests." OFF)
|
||||
kompute_option(KOMPUTE_OPT_CODE_COVERAGE "Enable if you want code coverage." OFF)
|
||||
|
|
@ -87,14 +96,14 @@ kompute_option(KOMPUTE_OPT_USE_BUILD_IN_VULKAN_HEADER "Use the built-in version
|
|||
kompute_option_string(KOMPUTE_OPT_BUILD_IN_VULKAN_HEADER_TAG "The git tag used for the built-in Vulkan Headers when 'KOMPUTE_OPT_USE_BUILD_IN_VULKAN_HEADER' is enabled. A list of tags can be found here: https://github.com/KhronosGroup/Vulkan-Headers/tags" "v1.2.203")
|
||||
message(STATUS "=======================================================")
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Deprecated Options
|
||||
#####################################################
|
||||
# ####################################################
|
||||
include(cmake/deprecation_warnings.cmake)
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Dependencies
|
||||
#####################################################
|
||||
# ####################################################
|
||||
include(cmake/vulkan_shader_compiler.cmake)
|
||||
include(FetchContent)
|
||||
include(cmake/check_vulkan_version.cmake)
|
||||
|
|
@ -105,11 +114,12 @@ include(cmake/check_vulkan_version.cmake)
|
|||
if(NOT KOMPUTE_OPT_ANDROID_BUILD)
|
||||
find_package(Vulkan REQUIRED)
|
||||
endif()
|
||||
|
||||
if(KOMPUTE_OPT_USE_BUILD_IN_VULKAN_HEADER)
|
||||
FetchContent_Declare(vulkan_header GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Headers.git
|
||||
GIT_TAG ${KOMPUTE_OPT_BUILD_IN_VULKAN_HEADER_TAG}) # Source: https://github.com/KhronosGroup/Vulkan-Headers/tags
|
||||
GIT_TAG ${KOMPUTE_OPT_BUILD_IN_VULKAN_HEADER_TAG}) # Source: https://github.com/KhronosGroup/Vulkan-Headers/tags
|
||||
FetchContent_MakeAvailable(vulkan_header)
|
||||
|
||||
|
||||
if(NOT KOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK)
|
||||
# Ensure the driver supports this Vulkan version
|
||||
check_vulkan_version(INCLUDE_DIR "${vulkan_header_SOURCE_DIR}/include")
|
||||
|
|
@ -127,7 +137,7 @@ if(KOMPUTE_OPT_USE_BUILD_IN_SPDLOG)
|
|||
set(SPDLOG_BUILD_SHARED ${KOMPUTE_OPT_DEPENDENCIES_SHARED_LIBS})
|
||||
|
||||
FetchContent_Declare(spdlog GIT_REPOSITORY https://github.com/gabime/spdlog.git
|
||||
GIT_TAG v1.10.0) # Source: https://github.com/gabime/spdlog/releases
|
||||
GIT_TAG v1.10.0) # Source: https://github.com/gabime/spdlog/releases
|
||||
FetchContent_MakeAvailable(spdlog)
|
||||
else()
|
||||
find_package(spdlog REQUIRED)
|
||||
|
|
@ -138,7 +148,7 @@ if(KOMPUTE_OPT_USE_BUILD_IN_FMT)
|
|||
set(FMT_INSTALL ${KOMPUTE_OPT_INSTALL})
|
||||
set(BUILD_SHARED_LIBS_BKP ${KOMPUTE_OPT_DEPENDENCIES_SHARED_LIBS})
|
||||
FetchContent_Declare(fmt GIT_REPOSITORY https://github.com/fmtlib/fmt.git
|
||||
GIT_TAG 8.1.1) # Source: https://github.com/fmtlib/fmt/releases
|
||||
GIT_TAG 8.1.1) # Source: https://github.com/fmtlib/fmt/releases
|
||||
FetchContent_MakeAvailable(fmt)
|
||||
set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_BKP})
|
||||
else()
|
||||
|
|
@ -149,7 +159,7 @@ endif()
|
|||
if(KOMPUTE_OPT_BUILD_TESTS)
|
||||
if(KOMPUTE_OPT_USE_BUILD_IN_GOOGLE_TEST)
|
||||
FetchContent_Declare(googletest GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG release-1.11.0) # Source: https://github.com/google/googletest/releases
|
||||
GIT_TAG release-1.11.0) # Source: https://github.com/google/googletest/releases
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
|
||||
add_library(gtest_int INTERFACE)
|
||||
|
|
@ -157,7 +167,7 @@ if(KOMPUTE_OPT_BUILD_TESTS)
|
|||
target_include_directories(gtest_int INTERFACE ${googletest_SOURCE_DIR}/include)
|
||||
|
||||
add_library(GTest::GTest ALIAS gtest_int)
|
||||
|
||||
|
||||
# Group under the "tests/gtest" project folder in IDEs such as Visual Studio.
|
||||
set_property(TARGET gtest PROPERTY FOLDER "tests/gtest")
|
||||
set_property(TARGET gtest_main PROPERTY FOLDER "tests/gtest")
|
||||
|
|
@ -170,17 +180,18 @@ endif()
|
|||
if(KOMPUTE_OPT_BUILD_PYTHON)
|
||||
if(KOMPUTE_OPT_USE_BUILD_IN_PYBIND11)
|
||||
FetchContent_Declare(pybind GIT_REPOSITORY https://github.com/pybind/pybind11.git
|
||||
GIT_TAG v2.9.2) # Source: https://github.com/pybind/pybind11/releases
|
||||
GIT_TAG v2.9.2) # Source: https://github.com/pybind/pybind11/releases
|
||||
FetchContent_MakeAvailable(pybind)
|
||||
else()
|
||||
find_package(pybind11 REQUIRED)
|
||||
endif()
|
||||
|
||||
find_package(PythonLibs REQUIRED)
|
||||
endif()
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Preprocessor Macros
|
||||
#####################################################
|
||||
# ####################################################
|
||||
if(KOMPUTE_OPT_ANDROID_BUILD)
|
||||
add_compile_definitions(VK_USE_PLATFORM_ANDROID_KHR=1)
|
||||
endif()
|
||||
|
|
@ -193,16 +204,16 @@ if(KOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS)
|
|||
add_compile_definitions(KOMPUTE_DISABLE_VK_DEBUG_LAYERS=1)
|
||||
endif()
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Misc Options
|
||||
#####################################################
|
||||
# ####################################################
|
||||
if(KOMPUTE_OPT_INSTALL)
|
||||
# Enable install parameters for glslang (overrides parameters passed)
|
||||
# When install is enabled the glslang libraries become shared
|
||||
set(ENABLE_GLSLANG_INSTALL ON CACHE BOOL "Enables install of glslang" FORCE)
|
||||
endif()
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -Werror")
|
||||
endif()
|
||||
|
|
@ -211,13 +222,14 @@ if(KOMPUTE_OPT_CODE_COVERAGE)
|
|||
if(NOT UNIX)
|
||||
message(FATAL_ERROR "KOMPUTE_OPT_CODE_COVERAGE can only be enabled in unix based systems due to limitation on gcov.")
|
||||
endif()
|
||||
|
||||
include(cmake/code_coverage.cmake)
|
||||
endif()
|
||||
|
||||
# If glslang is cloned, then SPIRV/GlslangToSpv.h will be used instead of glslang/SPIRV/GlslangToSpv.h
|
||||
# As after installation, SPIRV/ header files will be found in glslang/SPIRV/ , more info in #193
|
||||
if(KOMPUTE_OPT_REPO_SUBMODULE_BUILD)
|
||||
add_definitions(-DUSE_EXTERNAL_GLSLANG)
|
||||
add_definitions(-DUSE_EXTERNAL_GLSLANG)
|
||||
endif()
|
||||
|
||||
# Allow scripts to call main kompute Makefile
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
if(${INPUT_SHADER_FILE} STREQUAL "")
|
||||
message(FATAL_ERROR "No input file path provided via 'INPUT_SHADER_FILE'.")
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
project(kompute_array_mult)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
|
|
@ -26,7 +26,7 @@ endif()
|
|||
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(kompute GIT_REPOSITORY https://github.com/COM8/kompute.git
|
||||
GIT_TAG f4d72e2aa7b23ffe05d5ea3191bf72ad00def0ec) # The commit hash for a dev version before v0.9.0. Replace with the latest from: https://github.com/KomputeProject/kompute/releases
|
||||
GIT_TAG f4d72e2aa7b23ffe05d5ea3191bf72ad00def0ec) # The commit hash for a dev version before v0.9.0. Replace with the latest from: https://github.com/KomputeProject/kompute/releases
|
||||
FetchContent_MakeAvailable(kompute)
|
||||
include_directories(${kompute_SOURCE_DIR}/src/include)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,19 +1,20 @@
|
|||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
# To add more shaders simply copy the vulkan_compile_shader command and replace it with your new shader
|
||||
vulkan_compile_shader(INFILE my_shader.comp
|
||||
OUTFILE my_shader.hpp
|
||||
NAMESPACE "shader"
|
||||
RELATIVE_PATH "${kompute_SOURCE_DIR}/cmake")
|
||||
OUTFILE my_shader.hpp
|
||||
NAMESPACE "shader"
|
||||
RELATIVE_PATH "${kompute_SOURCE_DIR}/cmake")
|
||||
|
||||
# vulkan_compile_shader(INFILE my_shader2.comp
|
||||
# OUTFILE my_shader2.hpp
|
||||
# NAMESPACE "shader"
|
||||
# RELATIVE_PATH "${kompute_SOURCE_DIR}/cmake")
|
||||
# OUTFILE my_shader2.hpp
|
||||
# NAMESPACE "shader"
|
||||
# RELATIVE_PATH "${kompute_SOURCE_DIR}/cmake")
|
||||
|
||||
# Then add it to the library, so you can access it later in your code
|
||||
add_library(shader INTERFACE "${CMAKE_CURRENT_BINARY_DIR}/my_shader.hpp"
|
||||
# "${CMAKE_CURRENT_BINARY_DIR}/my_shader2.hpp"
|
||||
|
||||
# "${CMAKE_CURRENT_BINARY_DIR}/my_shader2.hpp"
|
||||
)
|
||||
|
||||
target_include_directories(shader INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
add_executable(kompute_array_mult main.cpp)
|
||||
target_link_libraries(kompute_array_mult PRIVATE shader kompute::kompute)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
project(kompute_logistic_regression)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
|
|
@ -26,7 +26,7 @@ endif()
|
|||
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(kompute GIT_REPOSITORY https://github.com/COM8/kompute.git
|
||||
GIT_TAG f4d72e2aa7b23ffe05d5ea3191bf72ad00def0ec) # The commit hash for a dev version before v0.9.0. Replace with the latest from: https://github.com/KomputeProject/kompute/releases
|
||||
GIT_TAG f4d72e2aa7b23ffe05d5ea3191bf72ad00def0ec) # The commit hash for a dev version before v0.9.0. Replace with the latest from: https://github.com/KomputeProject/kompute/releases
|
||||
FetchContent_MakeAvailable(kompute)
|
||||
include_directories(${kompute_SOURCE_DIR}/src/include)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,19 +1,20 @@
|
|||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
# To add more shaders simply copy the vulkan_compile_shader command and replace it with your new shader
|
||||
vulkan_compile_shader(INFILE my_shader.comp
|
||||
OUTFILE my_shader.hpp
|
||||
NAMESPACE "shader"
|
||||
RELATIVE_PATH "${kompute_SOURCE_DIR}/cmake")
|
||||
OUTFILE my_shader.hpp
|
||||
NAMESPACE "shader"
|
||||
RELATIVE_PATH "${kompute_SOURCE_DIR}/cmake")
|
||||
|
||||
# vulkan_compile_shader(INFILE my_shader2.comp
|
||||
# OUTFILE my_shader2.hpp
|
||||
# NAMESPACE "shader"
|
||||
# RELATIVE_PATH "${kompute_SOURCE_DIR}/cmake")
|
||||
# OUTFILE my_shader2.hpp
|
||||
# NAMESPACE "shader"
|
||||
# RELATIVE_PATH "${kompute_SOURCE_DIR}/cmake")
|
||||
|
||||
# Then add it to the library, so you can access it later in your code
|
||||
add_library(shader INTERFACE "${CMAKE_CURRENT_BINARY_DIR}/my_shader.hpp"
|
||||
# "${CMAKE_CURRENT_BINARY_DIR}/my_shader2.hpp"
|
||||
|
||||
# "${CMAKE_CURRENT_BINARY_DIR}/my_shader2.hpp"
|
||||
)
|
||||
|
||||
target_include_directories(shader INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
add_executable(kompute_logistic_regression main.cpp)
|
||||
target_link_libraries(kompute_logistic_regression PRIVATE shader kompute::kompute)
|
||||
|
|
|
|||
|
|
@ -1,93 +1,91 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
if(KOMPUTE_OPT_ANDROID_BUILD)
|
||||
find_library(android android)
|
||||
endif()
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
add_library(kompute Algorithm.cpp
|
||||
Manager.cpp
|
||||
OpAlgoDispatch.cpp
|
||||
OpMemoryBarrier.cpp
|
||||
OpTensorCopy.cpp
|
||||
OpTensorSyncDevice.cpp
|
||||
OpTensorSyncLocal.cpp
|
||||
Sequence.cpp
|
||||
Tensor.cpp)
|
||||
Manager.cpp
|
||||
OpAlgoDispatch.cpp
|
||||
OpMemoryBarrier.cpp
|
||||
OpTensorCopy.cpp
|
||||
OpTensorSyncDevice.cpp
|
||||
OpTensorSyncLocal.cpp
|
||||
Sequence.cpp
|
||||
Tensor.cpp)
|
||||
|
||||
add_library(kompute::kompute ALIAS kompute)
|
||||
|
||||
# Set version for shared libraries.
|
||||
set_target_properties(kompute
|
||||
PROPERTIES
|
||||
VERSION ${${PROJECT_NAME}_VERSION}
|
||||
SOVERSION ${${PROJECT_NAME}_VERSION_MAJOR})
|
||||
PROPERTIES
|
||||
VERSION ${${PROJECT_NAME}_VERSION}
|
||||
SOVERSION ${${PROJECT_NAME}_VERSION_MAJOR})
|
||||
|
||||
# Import GNU common install directory variables
|
||||
include(GNUInstallDirs)
|
||||
|
||||
if(CPR_FORCE_USE_SYSTEM_CURL)
|
||||
install(TARGETS kompute
|
||||
EXPORT komputeTargets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
EXPORT komputeTargets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
# Include CMake helpers for package config files
|
||||
# Follow this installation guideline: https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/komputeConfig.cmake.in
|
||||
"${PROJECT_BINARY_DIR}/kompute/komputeConfig.cmake"
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/kompute)
|
||||
"${PROJECT_BINARY_DIR}/kompute/komputeConfig.cmake"
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/kompute)
|
||||
|
||||
install(EXPORT komputeTargets
|
||||
FILE komputeTargets.cmake
|
||||
NAMESPACE kompute::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/kompute)
|
||||
FILE komputeTargets.cmake
|
||||
NAMESPACE kompute::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/kompute)
|
||||
|
||||
install(FILES ${PROJECT_BINARY_DIR}/kompute/komputeConfig.cmake
|
||||
${PROJECT_BINARY_DIR}/kompute/komputeConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/kompute)
|
||||
|
||||
${PROJECT_BINARY_DIR}/kompute/komputeConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/kompute)
|
||||
|
||||
else()
|
||||
install(TARGETS kompute
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Android
|
||||
#####################################################
|
||||
|
||||
# ####################################################
|
||||
if(KOMPUTE_OPT_ANDROID_BUILD)
|
||||
set(VK_ANDROID_COMMON_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/common)
|
||||
set(VK_ANDROID_PATCH_DIR ${PROJECT_SOURCE_DIR}/vk_ndk_wrapper_include/)
|
||||
set(VK_ANDROID_INCLUDE_DIR ${ANDROID_NDK}/sources/third_party/vulkan/src/include)
|
||||
|
||||
include_directories(${VK_ANDROID_COMMON_DIR}
|
||||
${VK_ANDROID_PATCH_DIR}
|
||||
${VK_ANDROID_INCLUDE_DIR})
|
||||
${VK_ANDROID_PATCH_DIR}
|
||||
${VK_ANDROID_INCLUDE_DIR})
|
||||
|
||||
add_library(kompute_vk_ndk_wrapper STATIC ${PROJECT_SOURCE_DIR}/vk_ndk_wrapper_include/kompute_vk_ndk_wrapper.cpp)
|
||||
endif()
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Linking
|
||||
#####################################################
|
||||
|
||||
# ####################################################
|
||||
if(KOMPUTE_OPT_ANDROID_BUILD)
|
||||
target_link_libraries(kompute PUBLIC kompute_vk_ndk_wrapper
|
||||
android
|
||||
kp_logger
|
||||
PRIVATE fmt::fmt)
|
||||
android
|
||||
kp_logger
|
||||
PRIVATE fmt::fmt)
|
||||
else()
|
||||
target_link_libraries(kompute PUBLIC Vulkan::Vulkan
|
||||
kp_logger
|
||||
PRIVATE fmt::fmt)
|
||||
kp_logger
|
||||
PRIVATE fmt::fmt)
|
||||
endif()
|
||||
|
||||
if(KOMPUTE_OPT_BUILD_PYTHON)
|
||||
|
|
@ -100,8 +98,8 @@ if(KOMPUTE_OPT_USE_BUILD_IN_VULKAN_HEADER)
|
|||
target_link_libraries(kompute PUBLIC Vulkan-Headers)
|
||||
endif()
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Misc
|
||||
#####################################################
|
||||
# ####################################################
|
||||
add_subdirectory(logger)
|
||||
add_subdirectory(include)
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
cmake_minimum_required(VERSION 3.15)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Kompute
|
||||
#####################################################
|
||||
|
||||
# ####################################################
|
||||
target_include_directories(kompute PUBLIC $<INSTALL_INTERFACE:include>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
|
||||
|
||||
target_sources(kompute PRIVATE
|
||||
# Header files (useful in IDEs)
|
||||
|
||||
# Header files (useful in IDEs)
|
||||
kompute/Algorithm.hpp
|
||||
kompute/Core.hpp
|
||||
kompute/Kompute.hpp
|
||||
|
|
@ -32,15 +32,15 @@ target_sources(kompute PRIVATE
|
|||
|
||||
install(DIRECTORY kompute DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Logger
|
||||
#####################################################
|
||||
|
||||
# ####################################################
|
||||
target_include_directories(kp_logger PUBLIC $<INSTALL_INTERFACE:include>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
|
||||
|
||||
target_sources(kp_logger PRIVATE
|
||||
# Header files (useful in IDEs)
|
||||
|
||||
# Header files (useful in IDEs)
|
||||
kompute/logger/Logger.hpp
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.16)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
set(LOGGER_SOURCES Logger.cpp)
|
||||
|
||||
|
|
@ -6,31 +6,32 @@ add_library(kp_logger ${LOGGER_SOURCES})
|
|||
target_link_libraries(kp_logger PUBLIC spdlog::spdlog)
|
||||
|
||||
if(${KOMPUTE_OPT_LOG_LEVEL} STREQUAL "Trace")
|
||||
set (KOMPUTE_OPT_LOG_LEVEL TRACE)
|
||||
set(KOMPUTE_OPT_LOG_LEVEL TRACE)
|
||||
message(STATUS "Using log level Trace")
|
||||
elseif(${KOMPUTE_OPT_LOG_LEVEL} STREQUAL "Debug")
|
||||
set (KOMPUTE_OPT_LOG_LEVEL DEBUG)
|
||||
set(KOMPUTE_OPT_LOG_LEVEL DEBUG)
|
||||
message(STATUS "Using log level Debug")
|
||||
elseif(${KOMPUTE_OPT_LOG_LEVEL} STREQUAL "Info")
|
||||
set (KOMPUTE_OPT_LOG_LEVEL INFO)
|
||||
set(KOMPUTE_OPT_LOG_LEVEL INFO)
|
||||
message(STATUS "Using log level Info")
|
||||
elseif(${KOMPUTE_OPT_LOG_LEVEL} STREQUAL "Warn")
|
||||
set (KOMPUTE_OPT_LOG_LEVEL WARN)
|
||||
set(KOMPUTE_OPT_LOG_LEVEL WARN)
|
||||
message(STATUS "Using log level Warn")
|
||||
elseif(${KOMPUTE_OPT_LOG_LEVEL} STREQUAL "Error")
|
||||
set (KOMPUTE_OPT_LOG_LEVEL ERROR)
|
||||
set(KOMPUTE_OPT_LOG_LEVEL ERROR)
|
||||
message(STATUS "Using log level Error")
|
||||
elseif(${KOMPUTE_OPT_LOG_LEVEL} STREQUAL "Critical")
|
||||
set (KOMPUTE_OPT_LOG_LEVEL CRITICAL)
|
||||
set(KOMPUTE_OPT_LOG_LEVEL CRITICAL)
|
||||
message(STATUS "Using log level Critical")
|
||||
elseif(${KOMPUTE_OPT_LOG_LEVEL} STREQUAL Off)
|
||||
set (KOMPUTE_OPT_LOG_LEVEL OFF)
|
||||
set(KOMPUTE_OPT_LOG_LEVEL OFF)
|
||||
message(STATUS "Using log level Off")
|
||||
else()
|
||||
if((NOT ${KOMPUTE_OPT_LOG_LEVEL} STREQUAL Default) AND (NOT KOMPUTE_OPT_LOG_LEVEL STREQUAL ""))
|
||||
if((NOT ${KOMPUTE_OPT_LOG_LEVEL} STREQUAL Default) AND(NOT KOMPUTE_OPT_LOG_LEVEL STREQUAL ""))
|
||||
message(WARNING "Log level '${KOMPUTE_OPT_LOG_LEVEL}' unknown, use -DKOMPUTE_OPT_LOG_LEVEL=[Trace, Debug, Info, Warn, Error, Critical, Off]")
|
||||
endif()
|
||||
set (KOMPUTE_OPT_LOG_LEVEL $<IF:$<CONFIG:Debug>,DEBUG,INFO>)
|
||||
|
||||
set(KOMPUTE_OPT_LOG_LEVEL $<IF:$<CONFIG:Debug>,DEBUG,INFO>)
|
||||
message(STATUS "Setting KOMPUTE_OPT_LOG_LEVEL to according to build type")
|
||||
endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,28 +1,29 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
#######################
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
# ######################
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Shaders
|
||||
#####################################################
|
||||
# ####################################################
|
||||
add_subdirectory(shaders)
|
||||
|
||||
#####################################################
|
||||
# ####################################################
|
||||
# Tests
|
||||
#####################################################
|
||||
|
||||
# ####################################################
|
||||
macro(add_kompute_test _TEST_NAME)
|
||||
add_executable("${_TEST_NAME}_tests" "Test${_TEST_NAME}.cpp"
|
||||
${ARGN})
|
||||
${ARGN})
|
||||
target_link_libraries("${_TEST_NAME}_tests" PRIVATE GTest::GTest
|
||||
kompute::kompute
|
||||
kp_logger
|
||||
test_shaders
|
||||
test_shaders_glsl)
|
||||
kompute::kompute
|
||||
kp_logger
|
||||
test_shaders
|
||||
test_shaders_glsl)
|
||||
add_test(NAME "kompute_${_TEST_NAME}_tests" COMMAND "${_TEST_NAME}_tests")
|
||||
|
||||
# Group under the "tests" project folder in IDEs such as Visual Studio.
|
||||
set_property(TARGET ${_TEST_NAME}_tests PROPERTY FOLDER "tests")
|
||||
if(WIN32 AND BUILD_SHARED_LIBS AND NOT FILES_COPYED) # Install dlls in the same directory as the executable on Windows so one can simply double click them
|
||||
|
||||
if(WIN32 AND BUILD_SHARED_LIBS AND NOT FILES_COPYED) # Install dlls in the same directory as the executable on Windows so one can simply double click them
|
||||
set(FILES_COPYED "DONE")
|
||||
add_custom_command(TARGET ${_TEST_NAME}_tests POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:test_shaders> $<TARGET_FILE_DIR:${_TEST_NAME}_tests>)
|
||||
add_custom_command(TARGET ${_TEST_NAME}_tests POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:kompute::kompute> $<TARGET_FILE_DIR:${_TEST_NAME}_tests>)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
#######################
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
# ######################
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
add_library(test_shaders "Utils.cpp"
|
||||
"Utils.hpp")
|
||||
"Utils.hpp")
|
||||
|
||||
add_subdirectory(glsl)
|
||||
|
|
@ -1,26 +1,26 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
#######################
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
# ######################
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
vulkan_compile_shader(INFILE test_logistic_regression_shader.comp
|
||||
OUTFILE test_logistic_regression_shader.hpp
|
||||
NAMESPACE "kp")
|
||||
OUTFILE test_logistic_regression_shader.hpp
|
||||
NAMESPACE "kp")
|
||||
|
||||
vulkan_compile_shader(INFILE test_op_custom_shader.comp
|
||||
OUTFILE test_op_custom_shader.hpp
|
||||
NAMESPACE "kp")
|
||||
OUTFILE test_op_custom_shader.hpp
|
||||
NAMESPACE "kp")
|
||||
|
||||
vulkan_compile_shader(INFILE test_workgroup_shader.comp
|
||||
OUTFILE test_workgroup_shader.hpp
|
||||
NAMESPACE "kp")
|
||||
OUTFILE test_workgroup_shader.hpp
|
||||
NAMESPACE "kp")
|
||||
|
||||
vulkan_compile_shader(INFILE test_shader.comp
|
||||
OUTFILE test_shader.hpp
|
||||
NAMESPACE "kp")
|
||||
OUTFILE test_shader.hpp
|
||||
NAMESPACE "kp")
|
||||
|
||||
add_library(test_shaders_glsl INTERFACE "${CMAKE_CURRENT_BINARY_DIR}/test_logistic_regression_shader.hpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/test_op_custom_shader.hpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/test_workgroup_shader.hpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/test_shader.hpp")
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/test_op_custom_shader.hpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/test_workgroup_shader.hpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/test_shader.hpp")
|
||||
|
||||
target_include_directories(test_shaders_glsl INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue