--- /dev/null
+cmake_minimum_required(VERSION 3.1)
+
+add_subdirectory(streamexecutor)
OUTPUT_STRIP_TRAILING_WHITESPACE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LLVM_CXXFLAGS}")
- # Find the libraries that correspond to the LLVM components
- # that we wish to use
- llvm_map_components_to_libnames(llvm_libs support symbolize)
+ set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
+ list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}")
+ include(AddLLVM)
if(STREAM_EXECUTOR_UNIT_TESTS)
enable_testing()
endif()
endif(STREAM_EXECUTOR_STANDALONE)
+# Find the libraries that correspond to the LLVM components
+# that we wish to use
+llvm_map_components_to_libnames(llvm_libs support symbolize)
+
# Insist on C++ 11 features.
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(lib)
add_subdirectory(examples)
+if(STREAM_EXECUTOR_UNIT_TESTS)
+ add_subdirectory(unittests)
+endif()
+
if(STREAM_EXECUTOR_ENABLE_CONFIG_TOOL )
add_subdirectory(tools/streamexecutor-config)
endif(STREAM_EXECUTOR_ENABLE_CONFIG_TOOL )
-add_library(
- utils
- OBJECT
- Utils/Error.cpp)
+macro(add_se_library name)
+ add_llvm_library(${name} ${ARGN})
+ set_target_properties(${name} PROPERTIES FOLDER "streamexecutor libraries")
+endmacro(add_se_library)
-add_library(
+add_subdirectory(Utils)
+
+add_se_library(
streamexecutor
- $<TARGET_OBJECTS:utils>
Device.cpp
DeviceMemory.cpp
Kernel.cpp
Platform.cpp
PlatformDevice.cpp
PlatformManager.cpp
- Stream.cpp)
-target_link_libraries(streamexecutor ${llvm_libs})
+ Stream.cpp
-install(TARGETS streamexecutor DESTINATION lib)
+ LINK_LIBS
+ utils
+ )
-if(STREAM_EXECUTOR_UNIT_TESTS)
- add_subdirectory(unittests)
-endif()
+install(TARGETS streamexecutor DESTINATION lib)
--- /dev/null
+add_se_library(
+ utils
+ Error.cpp)
+++ /dev/null
-add_executable(
- device_test
- DeviceTest.cpp)
-target_link_libraries(
- device_test
- streamexecutor
- ${GTEST_BOTH_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT})
-add_test(DeviceTest device_test)
-
-add_executable(
- kernel_spec_test
- KernelSpecTest.cpp)
-target_link_libraries(
- kernel_spec_test
- streamexecutor
- ${GTEST_BOTH_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT})
-add_test(KernelSpecTest kernel_spec_test)
-
-add_executable(
- packed_kernel_argument_array_test
- PackedKernelArgumentArrayTest.cpp)
-target_link_libraries(
- packed_kernel_argument_array_test
- streamexecutor
- ${llvm_libs}
- ${GTEST_BOTH_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT})
-add_test(PackedKernelArgumentArrayTest packed_kernel_argument_array_test)
-
-add_executable(
- stream_test
- StreamTest.cpp)
-target_link_libraries(
- stream_test
- streamexecutor
- ${llvm_libs}
- ${GTEST_BOTH_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT})
-add_test(StreamTest stream_test)
--- /dev/null
+add_custom_target(StreamExecutorUnitTests)
+set_target_properties(StreamExecutorUnitTests PROPERTIES FOLDER "streamexecutor tests")
+
+function(add_se_unittest testdir_name)
+ add_unittest(StreamExecutorUnitTests ${testdir_name} ${ARGN})
+ target_link_libraries(${testdir_name} streamexecutor)
+endfunction()
+
+add_subdirectory(CoreTests)
--- /dev/null
+add_se_unittest(
+ CoreTests
+ DeviceTest.cpp
+ KernelSpecTest.cpp
+ PackedKernelArgumentArrayTest.cpp
+ StreamTest.cpp
+)