Date: Mon, 11 Sep 2006 15:27:36 -0700 From: "Brandon J. Van Every" <[EMAIL PROTECTED]>
At 06:27 PM 9/11/2006, Brandon J. Van Every wrote: >I'm making a casual effort to build the G3D library, which has CMake support under development. It contains: >INCLUDE (FindSDL) >FIND_PACKAGE(SDL REQUIRED) > >I have SDL binaries for VS7.1 on my system in E:\devel\vs71\SDL-1.2.11. >CMakeSetup complained that it was missing some SDL variables, so I manually provided SDL_INCLUDE_DIR and SDLMAIN_LIBRARY. Things seem to build ok after this, although the build breaks somewhere else for G3D reasons, so I'm not 100% sure of success here. > >Anyways, CMake is also looking for SDL_LIBRARY_TEMP. This is not documented. Googling, it appears to be specific to the CMake FindSDL module, and is not any kind of general SDL parameter. It shows up in CMakeSetup as SDL_LIBRARY_TEMP-NOTFOUND. Leaving it alone doesn't seem to cause a problem, but to the user it looks like an error. If FindSDL is creating this variable, shouldn't it initialize it or something? >Make it not look suspect. Yep, that is a bug, most likely from a FIND_* call putting it in the cache. You can create a bug entry. -Bill
So I wrote most of the code in that module so I guess I should chime in. What I was trying to do with the SDL_LIBRARY_TEMP was that some platforms need to specify more than others on the link line. OS X is -framework SDL -framework Cocoa, Visual Studio was -lSDL -lSDLmain, mingw was -lmingw -lSDL -lSDLmain, FreeBSD was -lSDL11 -pthreads -lm, and so forth. Since the names and types of the libraries were all variable, I wanted to unify the build system under CMake so people using the module wouldn't have to know about all these details. The intention was that a user only need to use SDL_LIBRARY and SDL_INCLUDE_DIR in their scripts. I invented SDL_LIBRARY_TEMP as a private hidden variable that I could manipulate as needed. The problem I encountered with using SDL_LIBRARY was that once it was seet by FIND_LIBRARY, any changes I made to it were never reflected in the ccmake GUI. Even though I changed the string, it only showed the original set value. This annoys me very much. So the work-around was to manipulate private variables, and in one shot, set SDL_LIBRARY at the very end so its value in the GUI reflected the correct value. This all used to work for me, but I haven't tried it in Windows recently with the newest versions of CMake and SDL. But if there is a cleaner way to pull this all off that doesn't break CMake, I would like to know about it. -Eric _______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake