ddemidov / vexcl

VexCL is a C++ vector expression template library for OpenCL/CUDA/OpenMP
http://vexcl.readthedocs.org
MIT License
699 stars 81 forks source link

Fixing build test on windows #251

Closed henryiii closed 6 years ago

henryiii commented 6 years ago

This adds a config setting for the build and test. Let's see if this works (not testing on Windows locally).

codecov[bot] commented 6 years ago

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@d248d58). Click here to learn what that means. The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff            @@
##             master    #251   +/-   ##
========================================
  Coverage          ?   88.5%           
========================================
  Files             ?     129           
  Lines             ?   15240           
  Branches          ?       0           
========================================
  Hits              ?   13488           
  Misses            ?    1752           
  Partials          ?       0

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update d248d58...830f38d. Read the comment docs.

henryiii commented 6 years ago

I'll try to fix this tomorrow. I'll have to start up a Windows instance to run it and figure out how to get the configuration into the build-and-run part. CMake does this in its tests, but there are too many levels of variables for me to see where the config selection part is.

henryiii commented 6 years ago

@ddemidov, I've almost got this working. One problem left in vexcl/types.hpp:

// This should be available for all backends
...
#include <CL/cl_platform.h>

This is not true on Windows if you are using the JIT platform, since the OpenCL headers are not in the path by default.

ddemidov commented 6 years ago

Well, the comment means "It should be made available". What I did on platforms where it was not, is download a copy of cl_platform.h from Khronos OpenCL Registry and copy it to vexcl/CL together with cl.hpp. Unfortunately, this does not always work, so it can not be done permanently: a54182f36193bd4442cd5d2f30d534d127ca26c5

henryiii commented 6 years ago

Done, Appveyor fixed. (Along with the previous mac fix). CMake should give a warning if OpenCL headers are not found for the JIT target, and captures the OpenCL header location for JIT target.

ddemidov commented 6 years ago

Thanks, this looks great!