Well the thing is I force a check on the standard SDK before attempting to build the j2k library. Apparently it is present on the imorphics cluster. Line 53 of FindECW:
IF( WIN32 AND (EXISTS ${vxl_SOURCE_DIR}/v3p/j2k/Source/include/NCSEcw.h) AND WIN32SDK_FOUND )
Only the paid Visual Studio versions include the Microsoft API, VCExpress not being one of them.
ATL is not a GUI library but an API for writing COM objects easier. The j2k library has features for streaming image data from server based applications. And I think the code uses ATL .
So the options are either force a check on ATL or isolate this server streaming feature of j2k. I would rather go with the former.



On Fri, Jan 21, 2011 at 11:48 AM, Ian Scott <scottim@imorphics.com> wrote:
On 21/01/2011 16:32, Octavian Biris wrote:
So I did a little bit of research and the reason imorphics.com
<http://imorphics.com>'s compiler can't find atlbase.h is that they are

using Visual Studio Express Edition which does not include the ATL/MFC
proprietary headers. Now would you recommend me writing a module that
tries to find the version of visual studio and the location of this
header? Or is there a method(that I probably don't know about) that
already does that?

It isn't so much that Visual Studio Express doesn't include it but that the standard SDK doesn't include it. (You can get a whole build environment from Microsoft without using Visual studio, express edition or otherwise.) Why does v3p/j2k need access to a GUI level library anyway?

And does the standard CMake Module FindMFC help you at all.


BTW, It is useful to share these discussions on vxl-maintainers, so that other developers can help.