Create directory tree, fix warnings, cmake improvements (#58)

* fix make test

* include CTest and wrap tests with BUILD_TESTING

* move loader files to their own directory

* create specific directories for Windows and Linux

* cmake improvements

* fix path to map file for linux build

* add definition for CL_TARGET_OPENCL_VERSION

* fix warnings

* don't use target_link_options for cmake compatibility

* remove SHARED from a few cmake files
22 files changed
tree: 8f27b22d76012b5f403ee3f92777981b8a1d878a
  1. inc/
  2. loader/
  3. test/
  4. .gitignore
  5. build_using_cmake.bat
  6. CMakeLists.txt
  7. CODE_OF_CONDUCT.md
  8. LICENSE
  9. Makefile
  10. README.md
README.md

Building the OpenCL ICD Loader and Tests

The build system will build ICD Loader library (OpenCL.dll or libOpenCL.so), the ICD Loader Test binary (icd_loader_test), and some helper libraries for the test.

Linux

Run “make”

Windows

Run “build_using_cmake.bat”

Running ICD Test

The ICD Test can be run using ctest, which is a companion to cmake. It can also be run directly by executing icd_loader_test(.exe) executable from the bin folder.

Linux

  1. Add driver stub as an ICD echo full/path/to/libOpenCLDriverStub.so > /etc/OpenCL/vendors/test.icd

  2. Run test using ctest make test

Windows

  1. Add driver stub as an ICD by adding appropriate registry value Key for 32-bit apps: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Khronos\OpenCL\Vendors Key for 64-bit apps: HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors

    Add a REG_DWORD value: Name: c:/full/path/to/OpenCLDriverStub.dll Data: 0

    Note: The build_using_cmake.bat builds ICD test as a 32-bit binary.

  2. Run test using ctest.exe cd build ctest.exe

Cleanup

Manually remove the registry key or .icd files added for running the ICD test.

The “build” and “bin” folders are autogenerated by the build so those may be safely deleted without losing any source code (on Linux “make clobber” will delete them).