set(TESTS OCLAsyncMap OCLAsyncTransfer OCLAtomicCounter OCLBlitKernel OCLBufferFromImage OCLCPUGuardPages OCLCreateBuffer OCLCreateContext OCLCreateImage OCLDeviceAtomic OCLDeviceQueries OCLDynamic OCLDynamicBLines OCLGenericAddressSpace OCLGetQueueThreadID OCLGlobalOffset OCLImage2DFromBuffer OCLImageCopyPartial OCLKernelBinary OCLLDS32K OCLLinearFilter OCLLiquidFlash OCLMapCount OCLMemDependency OCLMemObjs OCLMemoryInfo OCLMultiQueue OCLOfflineCompilation OCLP2PBuffer OCLPartialWrkgrp OCLPerfCounters OCLPersistent OCLPinnedMemory OCLPlatformAtomics OCLProgramScopeVariables OCLReadWriteImage OCLRTQueue OCLSDI OCLSemaphore OCLStablePState OCLSVM OCLThreadTrace OCLUnalignedCopy ) add_library(oclruntime SHARED TestList.cpp $) foreach(TEST ${TESTS}) target_sources(oclruntime PRIVATE ${TEST}.cpp) endforeach() set_target_properties(oclruntime PROPERTIES CXX_STANDARD 14 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/tests/ocltst LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/tests/ocltst) target_compile_definitions(oclruntime PRIVATE $) target_include_directories(oclruntime PRIVATE $) target_link_libraries(oclruntime PRIVATE OpenCL) if(OPENGL_FOUND AND GLEW_FOUND) target_link_libraries(oclruntime PRIVATE ${GLEW_LIBRARIES} ${OPENGL_LIBRARIES}) endif() add_custom_command( TARGET oclruntime POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/oclruntime.exclude ${CMAKE_BINARY_DIR}/tests/ocltst/oclruntime.exclude) add_custom_target(test.ocltst.oclruntime COMMAND ${CMAKE_COMMAND} -E env "OCL_ICD_FILENAMES=$" $ -p 0 -m $ -A oclruntime.exclude DEPENDS ocltst oclruntime amdocl WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tests/ocltst USES_TERMINAL) foreach(TEST ${TESTS}) add_custom_target(test.ocltst.oclruntime.${TEST} COMMAND ${CMAKE_COMMAND} -E env "OCL_ICD_FILENAMES=$" $ -p 0 -m $ -t ${TEST} DEPENDS ocltst oclruntime amdocl WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tests/ocltst USES_TERMINAL) endforeach() INSTALL(TARGETS oclruntime DESTINATION tests/ocltst) INSTALL(FILES oclruntime.exclude DESTINATION tests/ocltst)