Hi! I've got some breakages after switch to CMake 2.6.0, and I'm not sure how to fix those in a correct way. The app in question is memonix:
http://www.viewizard.com/download/MemonixSourceCode_1.6_070713.zip (I'm not related to authors of this software, but CMakeLists.txt there is by me). Here's the source: --- CMakeLists.txt begins here --- # project name PROJECT(Memonix) # depends set(SDL_CONFIG "sdl-config" CACHE STRING "Path to sdl-config script") FIND_PACKAGE(OpenGL REQUIRED) IF(OPENGL_FOUND) INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) ELSE(OPENGL_FOUND) MESSAGE(FATAL "OpenGL not found") ENDIF(OPENGL_FOUND) FIND_PACKAGE(GLU REQUIRED) FIND_PACKAGE(SDL REQUIRED) FIND_PACKAGE(SDL_image REQUIRED) FIND_PACKAGE(SDL_mixer REQUIRED) # sources FILE(GLOB_RECURSE memonix_SRCS *.cpp) # targets ADD_DEFINITIONS(`${SDL_CONFIG} --cflags`) ADD_EXECUTABLE(Memonix ${memonix_SRCS}) TARGET_LINK_LIBRARIES(Memonix `${SDL_CONFIG} --libs` ${SDLIMAGE_LIBRARY} ${SDLMIXER_LIBRARY} ${OPENGL_gl_LIBRARY} ${GLU_LIBRARY}) --- CMakeLists.txt.orig ends here --- First breakage is caused by using `sdl-config` in libs: --- Linking CXX executable Memonix c++: `sdl-config: No such file or directory --- Obviously, `sdl-config --libs` is counted as two separate arguments. Changing it to "`sdl-config --libs`" doesn't help. I've worked that around like this: --- EXEC_PROGRAM(${SDL_CONFIG} ARGS "--cflags" OUTPUT_VARIABLE SDL_CFLAGS) EXEC_PROGRAM(${SDL_CONFIG} ARGS "--libs" OUTPUT_VARIABLE SDL_LIBS) ADD_DEFINITIONS(${SDL_CFLAGS}) ADD_EXECUTABLE(Memonix ${memonix_SRCS}) TARGET_LINK_LIBRARIES(Memonix ${SDL_LIBS} ${SDLIMAGE_LIBRARY} ${SDLMIXER_LIBRARY} ${OPENGL_gl_LIBRARY} ${GLU_LIBRARY}) --- Seems cleaner but that's more lines as well. Second breakage is like this: --- Linking CXX executable Memonix /usr/local/bin/cmake -E cmake_link_script CMakeFiles/Memonix.dir/link.txt --verbose=1 /usr/bin/c++ -O2 -fno-strict-aliasing -pipe -march=nocona -fPIC -pthread CMakeFiles/Memonix.dir/src/Main.o CMakeFiles/Memonix.dir/src/protect.o CMakeFiles/Memonix.dir/src/dialogs.o CMakeFiles/Memonix.dir/src/loading.o CMakeFiles/Memonix.dir/src/loop_audio.o CMakeFiles/Memonix.dir/src/Core/Texture/Texture.o CMakeFiles/Memonix.dir/src/Core/Texture/TextureManager.o CMakeFiles/Memonix.dir/src/Core/Texture/Texture_DIB.o CMakeFiles/Memonix.dir/src/Core/Math/Matrix33.o CMakeFiles/Memonix.dir/src/Core/Math/Matrix44.o CMakeFiles/Memonix.dir/src/Core/Math/Math.o CMakeFiles/Memonix.dir/src/Core/RendererInterface/OGL_Texture.o CMakeFiles/Memonix.dir/src/Core/RendererInterface/OGL_Draw3D.o CMakeFiles/Memonix.dir/src/Core/RendererInterface/RI_Font.o CMakeFiles/Memonix.dir/src/Core/RendererInterface/OGL_Draw2D.o CMakeFiles/Memonix.dir/src/Core/RendererInterface/OGL_Main.o CMakeFiles/Memonix.dir/src/Core/RendererInterface/OGL_Light.o CMakeFiles/Memonix.dir/src/Core/RendererInterface/OGL_ Matrix.o CMakeFiles/Memonix.dir/src/Core/RendererInterface/RI_Int.o CMakeFiles/Memonix.dir/src/Core/System/Timer.o CMakeFiles/Memonix.dir/src/Core/System/Mouse.o CMakeFiles/Memonix.dir/src/Core/System/System.o CMakeFiles/Memonix.dir/src/Core/System/Keyboard.o CMakeFiles/Memonix.dir/src/Core/VirtualFileSystem/Haff.o CMakeFiles/Memonix.dir/src/Core/VirtualFileSystem/VFS.o CMakeFiles/Memonix.dir/src/Core/VirtualFileSystem/RLE.o CMakeFiles/Memonix.dir/src/game_start.o CMakeFiles/Memonix.dir/src/loop_proc.o CMakeFiles/Memonix.dir/src/menu.o CMakeFiles/Memonix.dir/src/game.o CMakeFiles/Memonix.dir/src/options.o CMakeFiles/Memonix.dir/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.o -o Memonix -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -pthread /usr/local/lib/libSDL_image.so /usr/local/lib/libSDL_mixer.so /usr/local/lib/libGL.so /usr/local/lib/libGLU.so /usr/local/lib/libGL.so /usr/local/lib/libGLU.so /usr/local/lib/libSM.so /usr/local/lib/libICE.so /usr/local/lib/libX11.so /u sr/local/lib/libXext.so -Wl,-rpath,/usr/local/lib CMakeFiles/Memonix.dir/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.o(.text+0x0): In function `main': : multiple definition of `main' CMakeFiles/Memonix.dir/src/Main.o(.text+0x44): first defined here /usr/bin/ld: Warning: size of symbol `main' changed from 2288 in CMakeFiles/Memonix.dir/src/Main.o to 3 in CMakeFiles/Memonix.dir/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.o *** Error code 1 --- As you can see, CMakeFiles/Memonix.dir/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.o gets into project object files (seems like it's because CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp gets into GLOB_RECURSE. That's obviously undesired. -- Dmitry A. Marakasov | jabber: [EMAIL PROTECTED] [EMAIL PROTECTED] | http://www.amdmi3.ru _______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake