Ok - not what I get on ubuntu LTS 10.4. Perhaps I need the latest version?
( I ran the original files with just the missing line (?)
"install(CPack)" added).
$ cmake -version
cmake version 2.8.0
$ ls
$ cmake ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to:
/home/DEVELOPER/ucdm7/Dev/shadowmintorig/build
$ cpack -G DEB
CPack: Create package using DEB
CPack: Install projects
CPack: - Run preinstall target for: CPACK_MULTI
CPack: - Install project: CPACK_MULTI
CPack: Compress package
CPack: Finalize package
CPack: Package
/home/DEVELOPER/ucdm7/Dev/shadowmintorig/build/Demo3-0.1.1-Linux.deb
generated.
$ ls
CMakeCache.txt cmake_install.cmake _CPack_Packages demo1
Demo3-0.1.1-Linux.deb Makefile
CMakeFiles CPackConfig.cmake CPackSourceConfig.cmake demo2
install_manifest.txt
$
On 9/08/2012 12:01 PM, Doug wrote:
Hm, I would expect this to work:
mkdir build
cd build
cmake ..
cpack -G DEB
...but you'll find that cpack only supports one set of properties per
package, not per COMPONENT, which means you cannot have different
dependencies, descriptions, etc.
Also, woops; didn't mean to take that off list, I'll respond there
too; maybe one of those guys has some better ideas...
...and yeah, this was just a super quick sample for a stack overflow question.
Should probably go back and clean it up~
Checked; works for me:
doug@shadowmint:~/junk/cmake-multi-install$ clear
doug@shadowmint:~/junk/cmake-multi-install$ cd build/
doug@shadowmint:~/junk/cmake-multi-install/build$ ls
doug@shadowmint:~/junk/cmake-multi-install/build$ cmake ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/doug/junk/cmake-multi-install/build
doug@shadowmint:~/junk/cmake-multi-install/build$ cpack -G DEB
CPack: Create package using DEB
CPack: Install projects
CPack: - Run preinstall target for: CPACK_MULTI
CPack: - Install project: CPACK_MULTI
CPack: - Install component: DEMO1
CPack: - Install component: DEMO2
CPack: Create package
CPack: - package:
/home/doug/junk/cmake-multi-install/build/Demo3-0.1.1-Linux-DEMO1.deb
generated.
CPack: - package:
/home/doug/junk/cmake-multi-install/build/Demo3-0.1.1-Linux-DEMO2.deb
generated.
doug@shadowmint:~/junk/cmake-multi-install/build$ ls
CMakeCache.txt CPackSourceConfig.cmake Makefile
demo1 install_manifest_DEMO2.txt
CMakeFiles Demo3-0.1.1-Linux-DEMO1.deb _CPack_Packages demo2
CPackConfig.cmake Demo3-0.1.1-Linux-DEMO2.deb cmake_install.cmake
install_manifest_DEMO1.txt
doug@shadowmint:~/junk/cmake-multi-install/build$ dpkg --info
Demo3-0.1.1-Linux-DEMO1.deb
new debian package, version 2.0.
size 1870 bytes: control archive= 369 bytes.
174 bytes, 9 lines control
153 bytes, 3 lines md5sums
Package: demo3-demo1
Version: 0.1.1
Section: devel
Priority: optional
Architecture: amd64
Installed-Size: 4
Maintainer: [email protected]
Description: Demo package
doug@shadowmint:~/junk/cmake-multi-install/build$
~
Doug.
On Thu, Aug 9, 2012 at 9:44 AM, Bruce Cartland<[email protected]> wrote:
Thanks for the sample - makes it a lot easier to experiment.
I've been playing around with it but can't get it to do what I want (or is
claimed). It always generates just one package 'Demo3-0.1.1-Linux.deb'.
Perhaps I'm not using the command lines correctly?
The command lines I've used are:
cmake .
cmake --build . --target install
cmake --build . --target package # this generates the Demo3 package.
There are only two CPACK files generated: CPackConfig.cmake and
CPackSourceConfig.cmake.
cpack -C DEMO2 # this also generates the Demo3 package which is identical to
the above.
(also played around with cmake . -DCOMPONENT=DEMO2 and other such
constructions - to no avail).
I did the following mods to clarify things:
CMakeLists.txt
- added set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}") # near the top - for
easier testing
- added set(CPACK_GENERATOR "DEB") # before include(CPack) - for easier
testing
Demo1/CMakeLists.txt
- added include(CPack) # at the bottom - assume this is a typo (tried with
and without anyway)
Demo2/CMakeLists.txt
- made the DESTINATION "tmp2/"
- changed the description to say "Demo 2 package"
(so I end up, in the package, with "usr/tmp/Window.h" and
"usr/tmp2/Window.h", etc)
Now, in the CPackConfig.cmake file (of which there is only one - at the
root), attributes like ..DESCRIPTION_SUMMARY appear once with Demo3's
description. Clearly then, there needs to be a CPackConfig.cmake file for
each (?).
Demo3-0.1.1-Linux.deb always contains usr/tmp and usr/tmp2.
I think I'll have to resort to the technique another user outlined in 2008
http://www.cmake.org/pipermail/cmake/2008-April/020967.html.
Perhaps I must be missing something fundamental - for which I'll feel stupid
later.
thanks
On 9/08/2012 12:01 AM, Doug wrote:
I put an example up here when i was messing around with it:
https://github.com/shadowmint/cmake-multi-install
~
Doug.
On Aug 8, 2012 3:07 PM, "Bruce"<[email protected]> wrote:
Hi
Got my shiny new cmake build system going for my project on windows,
Ubuntu, and Mac.
Despite a fair bit of research I'm still not sure how to generate 2
separate debian packages from the same cmake files - say myapp.deb and
myapp-dev.deb.
I think what I want is somehow for it to write out another file in the
same manner it writes out both CPackConfig.cmake and
CPackSourceConfig.cmake. A CPackDevConfig.cmake?
Appreciate it if someone can point me in the right direction.
Ta
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake