From: Miguel A. Figueroa-V. <mi...@ms...> - 2006-03-09 16:57:30
|
Matt, I commited a FindDirectShow.cmake, but I'm using the try-compile approach... I'll change it if necessary, but it seems to be working on my machine. The reason I did it this way is that usually (most of this is speculation derived from my settings) dshow.h and strmiids.lib/quartz.lib are in the Visual Studio Include/Lib directories. But you can also download them from the Platform SDK. I don't think it is safe to add to INCLUDE/LINK_DIRECTORIES these paths, specially if there are several Visual Studio installations in the system. Now, if I find dshow.h, etc. from the platform sdk I think I need to INCLUDE/LINK_DIRECTORIES to make it work. Either that or assume the user has installed them as system paths or something in their tools... Anyway, I basically need more feedback on how DirectShow is installed in other systems to determine which is the best approach. That being said, I don't think it is much of a problem either way, but it seems the solution I found is pretty clean. --Miguel Matt Leotta wrote: > Miguel, > Is it safe enough to assume that if those header files (dshow.h > etc.) and libraries are available then DSHOW should be used? If so > you can follow the lead of > > vxl/config/cmake/Modules/NewCMake/Find*.cmake > > and use CMake's FIND_PATH and FIND_LIBRARY to locate these files, and > only enable DSHOW if the files are found. You can also quickly > eliminate unsupported platforms (i.e. everything except Windows). > > --Matt Leotta > > > On 3/7/06, Miguel A. Figueroa-Villanueva <mi...@ms...> wrote: >> Hello maintainers, >> >> I think the correct way to decide if vidl2 should include the DirectShow >> files is with a TRY-COMPILE. That is the recommended way from the MSDN >> faqs and it probably installs things in system32 as dlls and such, so I >> guess this would make sense to just TRY-COMPILE to test wether it exists. >> >> From looking into the VXL hierarchy, it seems I should use: >> >> PERFORM_CMAKE_TEST(vidl2_platform_tests.cxx VIDL2_HAS_DSHOW) >> >> I think I should add it to vxl_platform_tests.cxx rather then my own >> file, right? However, in testing this I created a different file. >> >> The problem that I'm having is that I couldn't figure out how to tell it >> to link with "strmiids quartz" so the test fails. >> >> So, how do I do this? Or should I just put the TRY_COMPILE(...) in >> contrib/brl/bbas/vidl2/CMakeLists.txt and forget about using the >> PERFORM_CMAKE_TEST(...) macro? >> >> Thanks, Miguel >> >> The test code (in vidl2_platform_tests.cxx) is: >> //------------------------------------- >> >> #ifdef VIDL2_HAS_DSHOW >> >> #include <atlbase.h> >> #include <dshow.h> >> #include <qedit.h> >> >> int main() >> { >> CComPtr<IFilterGraph2> filter_graph; >> filter_graph.CoCreateInstance(CLSID_FilterGraph); >> return 0; >> } >> #endif // VIDL2_HAS_DSHOW >> >> //------------------------------------- >> >> > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd_______________________________________________ > Vxl-maintainers mailing list > Vxl...@li... > https://lists.sourceforge.net/lists/listinfo/vxl-maintainers |