Hi,

I'm using cmake in a project to build different configurations (debug-static, debug-shared, release-...) of a library out of the same sources. All these
built libraries have to be in a single project as cpack is used to make
binary packages for windows and linux.

In case of the windows platform everything works fine, under linux the
generated binaries are not installed and packed.

For the test case is attached (for cmake 2.6.x):
$ tar xfz debug-and-release.tar.gz
$ mkdir BUILD
$ cd BUILD
$ cmake ../debug-and-release
..
$ make
..
$ make install
[ 33%] Built target bin1
[ 66%] Built target bin2
[100%] Built target bin3
Install the project...
-- Install configuration: ""
-- Installing: /tmp/bin/bin1

Only on of the 3 executables is installed.

If hacked cmake-2.6.2 to do the job as wished. This patch is not perfect:
It would be favourable to make this change configurable.

-- Karl Wallner

Attachment: debug-and-release.tar.gz
Description: application/gzip

diff -r -c ../ORIG/cmake-2.6.2/Source/cmInstallGenerator.cxx cmake-2.6.2/Source/cmInstallGenerator.cxx
*** ../ORIG/cmake-2.6.2/Source/cmInstallGenerator.cxx	2008-09-24 20:34:36.000000000 +0200
--- cmake-2.6.2/Source/cmInstallGenerator.cxx	2008-10-01 20:30:53.000000000 +0200
***************
*** 158,163 ****
--- 158,164 ----
  std::string
  cmInstallGenerator::CreateConfigTest(const char* config)
  {
+   return std::string("1");
    std::string result = "\"${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^(";
    if(config && *config)
      {
***************
*** 171,176 ****
--- 172,178 ----
  std::string
  cmInstallGenerator::CreateConfigTest(std::vector<std::string> const& configs)
  {
+   return std::string("1");
    std::string result = "\"${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^(";
    const char* sep = "";
    for(std::vector<std::string>::const_iterator ci = configs.begin();
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to