[CMake] CMake & RPM problems
Florent Lagaye
florent.lagaye at inrialpes.fr
Tue May 5 07:16:47 EDT 2009
Thanks for the answer. There was really an INCLUDE(CPack) command don't
know why it didn't get shiped with the mail. I was really using
UseRPMTools, I changed that.
Here's my new CMakeLists.txt:
cmake_minimum_required(VERSION 2.6)
PROJECT( viewer4d )
SET( VERSION 1.0.0 )
SET( ${PROJECT_NAME}_MAJOR_VERSION 1 )
SET( ${PROJECT_NAME}_MINOR_VERSION 0 )
SET( ${PROJECT_NAME}_PATCH_LEVEL 0 )
SET( PACKAGE_VERSION
${viewer4d_MAJOR_VERSION}.${viewer4d_MINOR_VERSION}.${viewer4d_PATCH_LEVEL}
)
SET( CPACK_PACKAGE_VERSION_MAJOR ${viewer4d_MAJOR_VERSION} )
SET( CPACK_PACKAGE_VERSION_MINOR ${viewer4d_MINOR_VERSION} )
SET( CPACK_PACKAGE_VERSION_PATCH ${viewer4d_PATCH_LEVEL} )
SET( CPACK_PACKAGE_VERSION
${viewer4d_MAJOR_VERSION}.${viewer4d_MINOR_VERSION}.${viewer4d_PATCH_LEVEL}
)
SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "A 4D viewer")
SET( CPACK_PACKAGE_VENDOR "INRIA - Florent LAGAYE")
SET( CPACK_GENERATOR "RPM")
SET( CPACK_SOURCE_PACKAGE_FILE_NAME "viewer4d-${VERSION}" CACHE INTERNAL
"tarball basename" )
SET( CPACK_SOURCE_GENERATOR TGZ )
SET( CPACK_IGNORE_FILES
"~$"
"^.*/\\\\.svn/.*$"
)
INCLUDE( CPack )
FIND_PACKAGE( OpenGL REQUIRED )
FIND_PACKAGE( Qt4 REQUIRED )
SET( QT_USE_QTCORE 1 )
SET( QT_USE_QTGUI 1 )
SET( QT_USE_QTXML 1 )
SET( QT_USE_QTOPENGL 1 )
INCLUDE( ${QT_USE_FILE} )
SET( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
SET( viewer4d_SRCS
main.cpp
Application.h Application.cpp
Camera.h Camera.cpp
DisplayCamera.h DisplayCamera.cpp
Debug.h Debug.cpp
Exception.h Exception.cpp
Frame.h Frame.cpp
Matrix.h
Mesh.h Mesh.cpp
ProgressWindow.h ProgressWindow.cpp
Quaternion.h Quaternion.cpp
Selectable.h Selectable.cpp
Positionable.h Positionable.cpp
Sequence.h Sequence.cpp
SequenceCollection.h SequenceCollection.cpp
Setup.h Setup.cpp
StreamDumper.h StreamDumper.cpp
Streamer.h Streamer.cpp
StreamFile.h StreamFile.cpp
StreamFile_0_2.h StreamFile_0_2.cpp
Timer.h Timer.cpp
ToolBox.h ToolBox.cpp
TriState.h TriState.cpp
Vector.h Vector.cpp
Viewer3d.h Viewer3d.cpp
ViewerWindow.h ViewerWindow.cpp
Light.h Light.cpp
)
SET( viewer4d_UIS
Viewer4dMainWindow.ui
ProgressWindow.ui
CameraDock.ui AnimationDock.ui DisplayDock.ui
MeshDock.ui SequenceDock.ui TextureDock.ui
LightDock.ui
)
SET( viewer4d_RCS viewer4d.qrc )
SET( viewer4d_MOCS Application.h ViewerWindow.h ProgressWindow.h Light.h
Selectable.h Positionable.h Viewer3d.h )
QT4_ADD_RESOURCES( viewer4d_SRCS ${viewer4d_RCS} )
QT4_WRAP_CPP( viewer4d_SRCS ${viewer4d_MOCS} )
QT4_WRAP_UI( viewer4d_SRCS ${viewer4d_UIS} )
INCLUDE_DIRECTORIES(
${PROJECT_SOURCE_DIR}
${PROJECT_BINARY_DIR}
${QT_INCLUDE_DIR}
${QT_QTXML_INCLUDE_DIR}
${QT_QTGUI_INCLUDE_DIR}
${QT_QTCORE_INCLUDE_DIR}
${QT_QTOPENGL_INCLUDE_DIR}
${OPENGL_INCLUDE_DIR}
)
SET( CMAKE_CXX_FLAGS "-Wall" )
SET( CMAKE_CXX_FLAGS_RELEASE "-O3 -DV4D_DEBUG_LVL=2" )
SET( CMAKE_CXX_FLAGS_DEBUG "-g -O0 -DV4D_DEBUG_LVL=3 -DV4D_PROFILING" )
SET( CMAKE_CXX_FLAGS_PROFILE "-pg -O3" )
ADD_EXECUTABLE( viewer4d ${viewer4d_SRCS} )
TARGET_LINK_LIBRARIES( viewer4d
${QT_QTXML_LIBRARY_DEBUG}
${QT_QTGUI_LIBRARY_DEBUG}
${QT_QTCORE_LIBRARY_DEBUG}
${QT_QTOPENGL_LIBRARY_DEBUG}
${OPENGL_LIBRARY}
)
INSTALL( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../example DESTINATION
share/viewer4d )
INSTALL( FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/v4d.svg DESTINATION
share/viewer4d )
INSTALL(TARGETS viewer4d
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
My command call for Makefile generation:
my_build_dir$ >rm -rf * ; cmake -DCMAKE_BUILD_TYPE=Release -G "Unix
Makefiles" ../src
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/lib64/ccache/gcc
-- Check for working C compiler: /usr/lib64/ccache/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/lib64/ccache/c++
-- Check for working CXX compiler: /usr/lib64/ccache/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so
-- Looking for XOpenDisplay in
/usr/lib64/libX11.so;/usr/lib64/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib64/libX11.so
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found.
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt-Version 4.5.0
-- Found OpenSSL: /usr/lib64/libssl.so
-- Looking for _POSIX_TIMERS
-- Looking for _POSIX_TIMERS - found
-- Configuring done
-- Generating done
-- Build files have been written to:
/local_scratch/lagaye/viewer4d/bin.release
Everything seems alright so I launch compilation/packaging process, but
I get the following error:
my_build_dir$ >make package
[ 1%] Generating ui_LightDock.h
[ 3%] Generating qrc_viewer4d.cxx
[ 5%] Generating moc_Application.cxx
[ 7%] Generating moc_ViewerWindow.cxx
[ 9%] Generating moc_ProgressWindow.cxx
[ 11%] Generating moc_Light.cxx
[ 13%] Generating moc_Selectable.cxx
[ 15%] Generating moc_Positionable.cxx
[ 17%] Generating moc_Viewer3d.cxx
[ 19%] Generating ui_Viewer4dMainWindow.h
[ 21%] Generating ui_ProgressWindow.h
[ 23%] Generating ui_CameraDock.h
[ 25%] Generating ui_AnimationDock.h
[ 27%] Generating ui_DisplayDock.h
[ 29%] Generating ui_MeshDock.h
[ 31%] Generating ui_SequenceDock.h
[ 33%] Generating ui_TextureDock.h
Scanning dependencies of target viewer4d
[ 35%] Building CXX object CMakeFiles/viewer4d.dir/main.cpp.o
[ 37%] Building CXX object CMakeFiles/viewer4d.dir/Application.cpp.o
[ 39%] Building CXX object CMakeFiles/viewer4d.dir/Camera.cpp.o
[ 41%] Building CXX object CMakeFiles/viewer4d.dir/DisplayCamera.cpp.o
[ 43%] Building CXX object CMakeFiles/viewer4d.dir/Debug.cpp.o
[ 45%] Building CXX object CMakeFiles/viewer4d.dir/Exception.cpp.o
[ 47%] Building CXX object CMakeFiles/viewer4d.dir/Frame.cpp.o
[ 49%] Building CXX object CMakeFiles/viewer4d.dir/Mesh.cpp.o
[ 50%] Building CXX object CMakeFiles/viewer4d.dir/ProgressWindow.cpp.o
[ 52%] Building CXX object CMakeFiles/viewer4d.dir/Quaternion.cpp.o
[ 54%] Building CXX object CMakeFiles/viewer4d.dir/Selectable.cpp.o
[ 56%] Building CXX object CMakeFiles/viewer4d.dir/Positionable.cpp.o
[ 58%] Building CXX object CMakeFiles/viewer4d.dir/Sequence.cpp.o
[ 60%] Building CXX object CMakeFiles/viewer4d.dir/SequenceCollection.cpp.o
[ 62%] Building CXX object CMakeFiles/viewer4d.dir/Setup.cpp.o
[ 64%] Building CXX object CMakeFiles/viewer4d.dir/StreamDumper.cpp.o
[ 66%] Building CXX object CMakeFiles/viewer4d.dir/Streamer.cpp.o
[ 68%] Building CXX object CMakeFiles/viewer4d.dir/StreamFile.cpp.o
[ 70%] Building CXX object CMakeFiles/viewer4d.dir/StreamFile_0_2.cpp.o
[ 72%] Building CXX object CMakeFiles/viewer4d.dir/Timer.cpp.o
[ 74%] Building CXX object CMakeFiles/viewer4d.dir/ToolBox.cpp.o
[ 76%] Building CXX object CMakeFiles/viewer4d.dir/TriState.cpp.o
[ 78%] Building CXX object CMakeFiles/viewer4d.dir/Vector.cpp.o
[ 80%] Building CXX object CMakeFiles/viewer4d.dir/Viewer3d.cpp.o
[ 82%] Building CXX object CMakeFiles/viewer4d.dir/ViewerWindow.cpp.o
[ 84%] Building CXX object CMakeFiles/viewer4d.dir/Light.cpp.o
[ 86%] Building CXX object CMakeFiles/viewer4d.dir/qrc_viewer4d.cxx.o
[ 88%] Building CXX object CMakeFiles/viewer4d.dir/moc_Application.cxx.o
[ 90%] Building CXX object CMakeFiles/viewer4d.dir/moc_ViewerWindow.cxx.o
[ 92%] Building CXX object CMakeFiles/viewer4d.dir/moc_ProgressWindow.cxx.o
[ 94%] Building CXX object CMakeFiles/viewer4d.dir/moc_Light.cxx.o
[ 96%] Building CXX object CMakeFiles/viewer4d.dir/moc_Selectable.cxx.o
[ 98%] Building CXX object CMakeFiles/viewer4d.dir/moc_Positionable.cxx.o
[100%] Building CXX object CMakeFiles/viewer4d.dir/moc_Viewer3d.cxx.o
Linking CXX executable viewer4d
[100%] Built target viewer4d
Run CPack packaging tool...
CPack: Create package using RPM
CPack: Install projects
CPack: - Run preinstall target for: viewer4d
CPack: - Install project: viewer4d
CPack: Compress package
CPack: Finalize package
CPack Error: Problem copying the package:
/local_scratch/lagaye/viewer4d/bin.release/_CPack_Packages/Linux/RPM/viewer4d-1.0.0-Linux.rpm
to /local_scratch/lagaye/viewer4d/bin.release/viewer4d-1.0.0-Linux.rpm
CPack Error: Error when generating package: viewer4d
make: *** [package] Erreur 1
Thanks what is it I miss ? I found the following error log in
"my_build_dir/_CPack_Packages/Linux/RPM/rpmbuild.err" :
+ umask 022
+ cd
/local_scratch/lagaye/viewer4d/bin.release/_CPack_Packages/Linux/RPM/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ LANG=C
+ export LANG
+ unset DISPLAY
+ exit 0
+ umask 022
+ cd
/local_scratch/lagaye/viewer4d/bin.release/_CPack_Packages/Linux/RPM/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ /usr/lib/rpm/check-buildroot
find:
`/home/perception/lagaye/rpmbuild/BUILDROOT/viewer4d-1.0.0-1.x86_64': No
such file or directory
+ /usr/lib/rpm/redhat/brp-compress
/usr/lib/rpm/redhat/brp-compress: line 8: cd:
/home/perception/lagaye/rpmbuild/BUILDROOT/viewer4d-1.0.0-1.x86_64: No
such file or directory
+ /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
find:
`/home/perception/lagaye/rpmbuild/BUILDROOT/viewer4d-1.0.0-1.x86_64': No
such file or directory
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
find:
`/home/perception/lagaye/rpmbuild/BUILDROOT/viewer4d-1.0.0-1.x86_64': No
such file or directory
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
find:
`/home/perception/lagaye/rpmbuild/BUILDROOT/viewer4d-1.0.0-1.x86_64': No
such file or directory
+ /usr/lib/rpm/brp-python-bytecompile
find:
`/home/perception/lagaye/rpmbuild/BUILDROOT/viewer4d-1.0.0-1.x86_64': No
such file or directory
+ /usr/lib/rpm/redhat/brp-python-hardlink
find:
`/home/perception/lagaye/rpmbuild/BUILDROOT/viewer4d-1.0.0-1.x86_64': No
such file or directory
+ /usr/lib/rpm/redhat/brp-java-repack-jars
find:
`/home/perception/lagaye/rpmbuild/BUILDROOT/viewer4d-1.0.0-1.x86_64': No
such file or directory
erreur: Fichier non trouvé par la substitution:
/home/perception/lagaye/rpmbuild/BUILDROOT/viewer4d-1.0.0-1.x86_64/*
Fichier non trouvé par la substitution:
/home/perception/lagaye/rpmbuild/BUILDROOT/viewer4d-1.0.0-1.x86_64/*
Sorry, my locale is French, so some messages are in French, but I bet
you're French too ?
Regards,
Florent.
Eric Noulard a écrit :
> 2009/5/5 Florent Lagaye <florent.lagaye at inrialpes.fr>:
>
>> Hi everybody,
>>
>> I'm a big cmake fan, I use to generate kdevelop projects and makefile.
>> Now that my application as achieved an "acceptable" completion level, I
>> think about deployment.
>>
>> So, I started using CPack from within CMake (2.6) (via my CMakeLists.txt
>> file). But I can't manage to build an rpm package.
>>
>> Here is my CMakeLists.txt file :
>>
>> [code]
>> cmake_minimum_required(VERSION 2.6)
>>
>> PROJECT( viewer4d )
>>
>> SET( VERSION 1.0.0 )
>>
>> SET( ${PROJECT_NAME}_MAJOR_VERSION 1 )
>> SET( ${PROJECT_NAME}_MINOR_VERSION 0 )
>> SET( ${PROJECT_NAME}_PATCH_LEVEL 0 )
>>
>> SET( PACKAGE_VERSION
>> ${viewer4d_MAJOR_VERSION}.${viewer4d_MINOR_VERSION}.${viewer4d_PATCH_LEVEL}
>> )
>> SET( CPACK_PACKAGE_VERSION_MAJOR ${viewer4d_MAJOR_VERSION} )
>> SET( CPACK_PACKAGE_VERSION_MINOR ${viewer4d_MINOR_VERSION} )
>> SET( CPACK_PACKAGE_VERSION_PATCH ${viewer4d_PATCH_LEVEL} )
>> SET( CPACK_PACKAGE_VERSION
>> ${viewer4d_MAJOR_VERSION}.${viewer4d_MINOR_VERSION}.${viewer4d_PATCH_LEVEL}
>> )
>> SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "A 4D viewer")
>> SET( CPACK_PACKAGE_VENDOR "INRIA - Florent LAGAYE")
>> SET( CPACK_SOURCE_PACKAGE_FILE_NAME "viewer4d-${VERSION}" CACHE INTERNAL
>> "tarball basename" )
>> SET(CPACK_SOURCE_IGNORE_FILES
>> "~$"
>> "^${PROJECT_SOURCE_DIR}.*/.svn/"
>> )
>>
>>
> [...]
>
>
>> )
>> [/code]
>>
>
> I didn't see INCLUDE(CPack) in your CMakeLists.txt, I must be there
> in order to make CPack work.
>
> You should INCLUDE(CPack) after your have defined you own
> CPACK_xxxx vars.
>
>
>> And here is what "make viewer4d_rpm" tells me :
>>
>>
>
> You are trying to use UseRPMTools.cmake instead of the builtin
> CMake/CPack 2.6 RPM support, see:
>
> http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#RPM_.28Unix_Only.29
>
>
>> What am I missing here ?
>>
>
> With CPack 2.6 you should be able to do:
>
> cd /to/build_dir
> cpack -G RPM
>
> or you may set
> SET(CPACK_GENERATOR "TGZ;ZIP;RPM")
>
> or any list of appropriate CPack generator you want to use when launching
>
> make package.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090505/a238c583/attachment-0001.htm>
More information about the CMake
mailing list