[cmake-developers] [CMake 0013160]: try_compile leaves temporary directories

2012-04-23 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://public.kitware.com/Bug/view.php?id=13160 
== 
Reported By:Andreas Roth
Assigned To:
== 
Project:CMake
Issue ID:   13160
Category:   CMake
Reproducibility:always
Severity:   major
Priority:   normal
Status: new
== 
Date Submitted: 2012-04-23 03:28 EDT
Last Modified:  2012-04-23 03:28 EDT
== 
Summary:try_compile leaves temporary directories
Description: 
I installed the version 2.8.8 of CMake and i noticed that each try_compile run
leaves a directory like build\CMakeFiles\CMakeTmp\cmTryCompileExec78340897.dir.

This behavior has been introduced to fix the issue described here:
http://public.kitware.com/Bug/view.php?id=12957

On a build machine i noticed that each CMake run gets slower and slower. After
deleting all directories in build\CMakeFiles\CMakeTmp the speed got back to
normal. I used the process monitor (from sysinternals) and saw that CMake
enumerates all items in the build\CMakeFiles\CMakeTmp quite often. I don't know
why, but i think that's the reason for the decreasing speed.


Steps to Reproduce: 
1. delete the CMakeCache.txt file if it exists
2. Run cmake -G Visual Studio 9 2008 .
   with CMakeLists.txt:
   PROJECT(HelloWorld C CXX)
   this detects the compiler and leaves several directories in
CMakeFiles\CMakeTmp.
3. goto step 1
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2012-04-23 03:28 Andreas Roth   New Issue
==

--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] ninja bug

2012-04-23 Thread Nicolas Desprès
On Mon, Apr 23, 2012 at 3:52 PM, Bill Hoffman bill.hoff...@kitware.com wrote:
 On 4/21/2012 7:37 AM, Peter Kümmel wrote:


 Great! Is this the step which will be dropped when the /fast target is
 build?


 Peter

 No, that drops building all the dependent targets.


 So, would it be possible to use CMake's depend generation with ninja? Right
 now ninja creates the .d files as part of the compilation.  Is it possible
 to move that to a separate pass?  Is it possible to have a per target .d
 file?

 This is actually important for Fortran support, which right now is totally
 broken in ninja.  For Fortran, you have to parse all the files first to find
 out what order they need to be compiled in.  So, doing it on the compile
 line is too late.


Bill,

A short answer, because it is topic that will require more work in the
generator and I have to think more about it. I don't think it is
trivial.

The depfile attribute for a rule is not mandatory. So, yes I think it
is possible to use the CMake's depend generation with Ninja as a
fallback. Actually, that was one of the question I had in mind when I
started to work on this generator. When Peter picked up the torch, he
went straight to the usual depfile as it is done in Ninja itself.
For the per target .d file, I think it is possible too. It is close
the request to have .s and .i target for each built files.

I add that to my todo list but it is growing faster than I removed
items. Spare time...

Maybe Peter has an idea about how to implement this quickly.

Cheers,

-- 
Nicolas Desprès
--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] [CMake 0013161]: Java support can violate the command-line string limitation

2012-04-23 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://public.kitware.com/Bug/view.php?id=13161 
== 
Reported By:Frank Glinka
Assigned To:
== 
Project:CMake
Issue ID:   13161
Category:   CMake
Reproducibility:always
Severity:   major
Priority:   normal
Status: new
== 
Date Submitted: 2012-04-23 13:28 EDT
Last Modified:  2012-04-23 13:28 EDT
== 
Summary:Java support can violate the command-line string
limitation
Description: 
Currently, the add_jar function composes a single command-line expression which
invokes javac and passes all java files as command-line arguments.

As soon as the number of Java files gets bigger and/or the files are placed in
folders with long path names, the system limit for command-line expressions is
easily reached.

Steps to Reproduce: 
Create a medium-sized java project with long path names to the Java files.

Additional Information: 
The Java compiler allows to provide a file as a program argument which lists the
source files to be compiled. This might be the better choice:

http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2012-04-23 13:28 Frank Glinka   New Issue
==

--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] [CMake 0013162]: create_symlink command portability

2012-04-23 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://www.cmake.org/Bug/view.php?id=13162 
== 
Reported By:Dave Abrahams
Assigned To:
== 
Project:CMake
Issue ID:   13162
Category:   CMake
Reproducibility:always
Severity:   feature
Priority:   normal
Status: new
== 
Date Submitted: 2012-04-24 01:22 EDT
Last Modified:  2012-04-24 01:22 EDT
== 
Summary:create_symlink command portability
Description: 
This command could be made to work on many-many Windows systems these days. 
Bonus: if symlinking not available, copy files instead.
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2012-04-24 01:22 Dave Abrahams  New Issue
==

--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[CMake] cmake 32/64 bit

2012-04-23 Thread Jörg F . Unger
Hi everyone,
I'm using windows 7 (64). I'm trying to determine the python installation
using cmake.
The problem is that cmake only exists as a 32 bit application. As a
consequence, it has only access to the 32 bit registry entries (WOW64). I
have installed python as a 64 bit application, which is not listed in the
32 bit registry.

By accessing
HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath

in the FinPythonLibs.cmake as the path, the 32 bit cmake does not find a
python installation. Unfortunately, there is also no possibility to set the
variables (PYTHON_LIBRARY PYTHON_INCUDE_DIR) manually. If I manually add in
the 32 bit registry the 64 bit application (python), everything works,
though this is just something I did to locate the problem, not a permanent
solution.

Any ideas how to circumvent these problems? Or is there a way to build a 64
bit cmake?

Jörg F.
--

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

Re: [CMake] cmake 32/64 bit

2012-04-23 Thread Rolf Eike Beer
 Hi everyone,
 I'm using windows 7 (64). I'm trying to determine the python installation
 using cmake.
 The problem is that cmake only exists as a 32 bit application. As a
 consequence, it has only access to the 32 bit registry entries (WOW64). I
 have installed python as a 64 bit application, which is not listed in the
 32 bit registry.

 By accessing
 HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath

 in the FinPythonLibs.cmake as the path, the 32 bit cmake does not find a
 python installation. Unfortunately, there is also no possibility to set
 the
 variables (PYTHON_LIBRARY PYTHON_INCUDE_DIR) manually. If I manually add
 in
 the 32 bit registry the 64 bit application (python), everything works,
 though this is just something I did to locate the problem, not a permanent
 solution.

 Any ideas how to circumvent these problems? Or is there a way to build a
 64
 bit cmake?

If you call cmake in the build tree as cmake -D
PYTHON_LIBRARY=f:/foo/bar/mypython.lib -D
PYTHON_INCLUDE_DIR=f:/foo/bar/include . this should work.

Eike
--

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


[CMake] target_link_libraries can't link shared libraries not listed in LD_LIBRARY_PATH

2012-04-23 Thread Vyacheslav Karamov

Hi All!

I have a problem with target_link_libraries. It  can't link with shared 
libraries not from directory listed in LD_LIBRARY_PATH.
1. When I try to link shared library with the full path obtained from 
find_library, my library is passed to gcc without -l option as ordinary 
object file.


2. When I try to link by specifying short name cblas I've got the 
error message:


Linking CXX shared library ../../sndcompare/amd64sse3/libsndcompared.so
/usr/bin/ld: cannot find -lcblas
collect2: ld returned 1 exit status
make[2]: *** [../../sndcompare/amd64sse3/libsndcompared.so] Error 1
make[1]: *** [CMakeFiles/sndcompare.dir/all] Error 2
make: *** [all] Error 2
*** Failed ***

OS: Ubuntu 11.10 64 bit
Compiler: g++ 4.6.1.
Cmake 2.8.5


add_library(${lib_name} SHARED
${io_files}
${utils_files}
${tech_independ_files}
${other_files}
)

find_library(atlas
NAME atlas
PATHS 
${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_SYSTEM_NAME}/atlas/${arch}/lib

DOC Atlas library
)

find_library(cblas
NAME cblas
PATHS 
${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_SYSTEM_NAME}/atlas/${arch}/lib

DOC Cblas library
)

link_directories(
${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_SYSTEM_NAME}/atlas/${arch}/lib
${CMAKE_CURRENT_SOURCE_DIR}/../../Sphinx/sphinxbase/${CMAKE_SYSTEM_NAME}/${arch}/lib
)

target_link_libraries(${lib_name}
debug ${do_scoring_debug}
optimized ${do_scoring}
general ${spinx}
general rt
general dl
general pthread
general cblas
general ${atlas}
)


Thank you in advance, Vyacheslav.
--

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


Re: [CMake] cpack and paths too long

2012-04-23 Thread Andrea Crotti

On 04/20/2012 12:36 PM, Eric Noulard wrote:

Nope, it would break backward compatibility, you can dig the ML
for discussion about that issue.

My opinion is that building in-source is a bad habit that ought to be
discouraged but the fact is,
this is not currently easy to enforce out-of-source:
http://www.cmake.org/Bug/view.php?id=6672




Ok the make problem was my mistake sorry..

we haven't really solved the long path problem yet unfortunately, even 
building out of source we get some very long paths...


Is there a way to shorten this generated path by CPack?

   C:/Temp/cmake_gen/_CPack_Packages/win32/NSIS*
*
Anyway the only solution I see for now is to check with a script the 
length of the paths, and abort before trying to

build anything.

Or the other possible solution is to run cpack from an OS which is not 
embarrassing, but not sure what version of CMake

we have available and if the NSIS is working fine on that version..
--

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

Re: [CMake] cpack and paths too long

2012-04-23 Thread David Cole
You should just get used to using shorter paths on the embarrassing OS.

This is an early warning sign for you that your end users will also
encounter these problems as they install your program on their systems in
non-short root paths...

You can ignore it if you wish, but the fact remains that Windows STILL has
many components in it that rely on full path names of ALL files being less
than 260 characters.

They do support longer file names, but there are still many legacy tools
where the limit exists.


HTH,
David


On Mon, Apr 23, 2012 at 8:26 AM, Andrea Crotti andrea.crott...@gmail.comwrote:

  On 04/20/2012 12:36 PM, Eric Noulard wrote:

  Nope, it would break backward compatibility, you can dig the ML
 for discussion about that issue.

 My opinion is that building in-source is a bad habit that ought to be
 discouraged but the fact is,
 this is not currently easy to enforce 
 out-of-source:http://www.cmake.org/Bug/view.php?id=6672



 Ok the make problem was my mistake sorry..

 we haven't really solved the long path problem yet unfortunately, even
 building out of source we get some very long paths...

 Is there a way to shorten this generated path by CPack?

C:/Temp/cmake_gen/_CPack_Packages/win32/NSIS*
 *
 Anyway the only solution I see for now is to check with a script the
 length of the paths, and abort before trying to
 build anything.

 Or the other possible solution is to run cpack from an OS which is not
 embarrassing, but not sure what version of CMake
 we have available and if the NSIS is working fine on that version..

 --

 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

Re: [CMake] cpack and paths too long

2012-04-23 Thread Andrea Crotti

On 04/23/2012 01:32 PM, David Cole wrote:

You should just get used to using shorter paths on the embarrassing OS.

This is an early warning sign for you that your end users will also 
encounter these problems as they install your program on their systems 
in non-short root paths...


You can ignore it if you wish, but the fact remains that Windows STILL 
has many components in it that rely on full path names of ALL files 
being less than 260 characters.


They do support longer file names, but there are still many legacy 
tools where the limit exists.



HTH,
David



I agree with you, unfortunately I'm not the person that has to use 
smaller paths, just writing the build system..
And good point about the installed application, I think I can assume 
however that if the CPack works also
the installed application should work, because it doesn't have the ~20 
chars needed for CPacking (but of course

depends on where it will be installed).

So well the only way is to make really sure there are no long paths 
around then :(

--

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


Re: [CMake] cmake 32/64 bit

2012-04-23 Thread Patrick Spendrin
Am 23.04.2012 10:45, schrieb Jörg F. Unger:
 Hi everyone,
...
 
 Any ideas how to circumvent these problems? Or is there a way to build a
 64 bit cmake?

You can build 64 bit cmake with the 32 bit version and at least the
mingw-w64 compiler, it probably builds using visual studio too.
I haven't tested yet if solves your problem though...

 
 Jörg F.

regards,
Patrick

--

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


Re: [CMake] target_link_libraries can't link shared libraries not listed in LD_LIBRARY_PATH

2012-04-23 Thread Andreas Pakulat
Hi,

On Mon, Apr 23, 2012 at 13:24, Vyacheslav Karamov ubuntul...@yandex.ruwrote:

 Hi All!

 I have a problem with target_link_libraries. It  can't link with shared
 libraries not from directory listed in LD_LIBRARY_PATH.
 1. When I try to link shared library with the full path obtained from
 find_library, my library is passed to gcc without -l option as ordinary
 object file.


What is the problem with linking the absolute path of the shared library?
This should just work


 2. When I try to link by specifying short name cblas I've got the error
 message:

 Linking CXX shared library ../../sndcompare/amd64sse3/**libsndcompared.so
 /usr/bin/ld: cannot find -lcblas
 collect2: ld returned 1 exit status
 make[2]: *** [../../sndcompare/amd64sse3/**libsndcompared.so] Error 1
 make[1]: *** [CMakeFiles/sndcompare.dir/**all] Error 2
 make: *** [all] Error 2
 *** Failed ***


This is because the linker does not know the directory where to search for
the library.


 add_library(${lib_name} SHARED
 ${io_files}
 ${utils_files}
 ${tech_independ_files}
 ${other_files}
 )

 find_library(atlas
NAME atlas
PATHS ${CMAKE_CURRENT_SOURCE_DIR}/${**CMAKE_SYSTEM_NAME}/atlas/${**
 arch}/lib
DOC Atlas library
)

 find_library(cblas
NAME cblas
PATHS ${CMAKE_CURRENT_SOURCE_DIR}/${**CMAKE_SYSTEM_NAME}/atlas/${**
 arch}/lib
DOC Cblas library
)

 link_directories(
 ${CMAKE_CURRENT_SOURCE_DIR}/${**CMAKE_SYSTEM_NAME}/atlas/${**arch}/lib
 ${CMAKE_CURRENT_SOURCE_DIR}/..**/../Sphinx/sphinxbase/${CMAKE_**
 SYSTEM_NAME}/${arch}/lib
 )


link_directories is not needed at all here or should not be needed. Just
make sure to pass ${cblas} and ${atlas} to
target_link_libraries. If that produces errors please provide the exact
error message.

Andreas
--

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

Re: [CMake] target_link_libraries can't link shared libraries not listed in LD_LIBRARY_PATH

2012-04-23 Thread Vyacheslav Karamov

Hi!

I just find the solution. The problem was in order how libraries were 
specified.

target_link_libraries(${lib_name}
general rt
general dl
general pthread
debug ${do_scoring_debug}
optimized ${do_scoring}
general ${spinx}
general ${cblas}
general ${atlas}
)


23.04.2012 16:28, Andreas Pakulat ???:

Hi,

On Mon, Apr 23, 2012 at 13:24, Vyacheslav Karamov 
ubuntul...@yandex.ru mailto:ubuntul...@yandex.ru wrote:


Hi All!

I have a problem with target_link_libraries. It  can't link with
shared libraries not from directory listed in LD_LIBRARY_PATH.
1. When I try to link shared library with the full path obtained
from find_library, my library is passed to gcc without -l option
as ordinary object file.


What is the problem with linking the absolute path of the shared 
library? This should just work


2. When I try to link by specifying short name cblas I've got
the error message:

Linking CXX shared library
../../sndcompare/amd64sse3/libsndcompared.so
/usr/bin/ld: cannot find -lcblas
collect2: ld returned 1 exit status
make[2]: *** [../../sndcompare/amd64sse3/libsndcompared.so] Error 1
make[1]: *** [CMakeFiles/sndcompare.dir/all] Error 2
make: *** [all] Error 2
*** Failed ***


This is because the linker does not know the directory where to search 
for the library.


add_library(${lib_name} SHARED
${io_files}
${utils_files}
${tech_independ_files}
${other_files}
)

find_library(atlas
   NAME atlas
   PATHS
${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_SYSTEM_NAME}/atlas/${arch}/lib
   DOC Atlas library
   )

find_library(cblas
   NAME cblas
   PATHS
${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_SYSTEM_NAME}/atlas/${arch}/lib
   DOC Cblas library
   )

link_directories(
${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_SYSTEM_NAME}/atlas/${arch}/lib

${CMAKE_CURRENT_SOURCE_DIR}/../../Sphinx/sphinxbase/${CMAKE_SYSTEM_NAME}/${arch}/lib
)


link_directories is not needed at all here or should not be needed. 
Just make sure to pass ${cblas} and ${atlas} to
target_link_libraries. If that produces errors please provide the 
exact error message.


Andreas


--

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

Re: [CMake] cmake 32/64 bit

2012-04-23 Thread Brad King
On Mon, Apr 23, 2012 at 4:45 AM, Jörg F. Unger
joergfun...@googlemail.com wrote:
 Hi everyone,
 I'm using windows 7 (64). I'm trying to determine the python installation
 using cmake.
 The problem is that cmake only exists as a 32 bit application. As a
 consequence, it has only access to the 32 bit registry entries (WOW64). I
 have installed python as a 64 bit application, which is not listed in the 32
 bit registry.

 By accessing
 HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath

 in the FinPythonLibs.cmake as the path, the 32 bit cmake does not find a
 python installation. Unfortunately, there is also no possibility to set the
 variables (PYTHON_LIBRARY PYTHON_INCUDE_DIR) manually. If I manually add in
 the 32 bit registry the 64 bit application (python), everything works,
 though this is just something I did to locate the problem, not a permanent
 solution.

 Any ideas how to circumvent these problems? Or is there a way to build a 64
 bit cmake?

At the point when you call find_package(PythonLibs) make sure you have
at least one language enabled.  That way CMake knows the address size
of the toolchain's target format.  That is important when searching so
CMake knows which registry view to use:

  
http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmFindCommon.cxx;hb=v2.8.8#l381

Note that the PlatformIs64Bit test is here:

  
http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmMakefile.cxx;hb=v2.8.8#l2195

-Brad
--

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


Re: [CMake] target_link_libraries can't link shared libraries not listed in LD_LIBRARY_PATH

2012-04-23 Thread Rolf Eike Beer
 Hi!

 I just find the solution. The problem was in order how libraries were
 specified.
 target_link_libraries(${lib_name}
 general rt
 general dl
 general pthread
 debug ${do_scoring_debug}
 optimized ${do_scoring}
 general ${spinx}
 general ${cblas}
 general ${atlas}
 )

You don't need the general keyword, specifying just a library will make it
be used with any build type.

Also you may want to replace general dl with ${CMAKE_DL_LIBS} and
general pthread with ${CMAKE_THREAD_LIBS_INIT} for portability. Note
that you need find_package(Threads) for the latter to work.

Eike
--

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


Re: [CMake] cmake 32/64 bit

2012-04-23 Thread Jörg F . Unger
2012/4/23 Brad King brad.k...@kitware.com

 On Mon, Apr 23, 2012 at 4:45 AM, Jörg F. Unger
 joergfun...@googlemail.com wrote:
  Hi everyone,
  I'm using windows 7 (64). I'm trying to determine the python installation
  using cmake.
  The problem is that cmake only exists as a 32 bit application. As a
  consequence, it has only access to the 32 bit registry entries (WOW64). I
  have installed python as a 64 bit application, which is not listed in
 the 32
  bit registry.
 
  By accessing
 
 HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath
 
  in the FinPythonLibs.cmake as the path, the 32 bit cmake does not find a
  python installation. Unfortunately, there is also no possibility to set
 the
  variables (PYTHON_LIBRARY PYTHON_INCUDE_DIR) manually. If I manually add
 in
  the 32 bit registry the 64 bit application (python), everything works,
  though this is just something I did to locate the problem, not a
 permanent
  solution.
 
  Any ideas how to circumvent these problems? Or is there a way to build a
 64
  bit cmake?

 At the point when you call find_package(PythonLibs) make sure you have
 at least one language enabled.  That way CMake knows the address size
 of the toolchain's target format.  That is important when searching so
 CMake knows which registry view to use:


 http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmFindCommon.cxx;hb=v2.8.8#l381

 Note that the PlatformIs64Bit test is here:


 http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmMakefile.cxx;hb=v2.8.8#l2195

 -Brad


I've tried to test this using

PROJECT(NuTo CXX C Fortran)
MESSAGE(STATUS CMAKE_SIZEOF_VOID_P  ${CMAKE_SIZEOF_VOID_P})

which gives 4. The problem is that I installed the 32bit version of MinGW.
--

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

Re: [CMake] cpack and paths too long

2012-04-23 Thread David Cole
On Mon, Apr 23, 2012 at 8:38 AM, Andrea Crotti andrea.crott...@gmail.comwrote:

 On 04/23/2012 01:32 PM, David Cole wrote:

 You should just get used to using shorter paths on the embarrassing OS.

 This is an early warning sign for you that your end users will also
 encounter these problems as they install your program on their systems in
 non-short root paths...

 You can ignore it if you wish, but the fact remains that Windows STILL
 has many components in it that rely on full path names of ALL files being
 less than 260 characters.

 They do support longer file names, but there are still many legacy tools
 where the limit exists.


 HTH,
 David


 I agree with you, unfortunately I'm not the person that has to use smaller
 paths, just writing the build system..
 And good point about the installed application, I think I can assume
 however that if the CPack works also
 the installed application should work, because it doesn't have the ~20
 chars needed for CPacking (but of course
 depends on where it will be installed).

 So well the only way is to make really sure there are no long paths around
 then :(



If Windows is your target system, then yes: you must make sure all your
paths are short enough.


Cheers,
David
--

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

[CMake] Autotools sub project, static lib in a shared lib

2012-04-23 Thread Leif Walsh
Hi,

I have a cmake project with some weird requirements:

It uses an external project that uses autotools. I have the other project's 
source tree unpacked in a subdirectory. During a build of my project, I want to 
run configure with some options, make, and make install in the subdirectory, 
then copy a static library out of the install dir, and link that into a shared 
library my project builds. 

In make, I'd write rules roughly like this:

lib/libext.a: ext/configure
(cd ext; ./configure --prefix=$(PWD)/extbuild; make; make install; install 
extbuild/lib/libext.a lib)

lib/libproj.so: $(objs) lib/libext.a
cc -o $@ -shared $^

How should I do this in cmake?

Does the IMPORTED property of add_library help me at all?

Sent from my iPhone 
--

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


Re: [CMake] Wiki: version compatibility matrix

2012-04-23 Thread Johannes Zarl
Hi David,

Yes, I should have time somewhere this week...

  Johannes

On Thursday, April 19, 2012 11:20:48 PM David Cole wrote:
 Hi Johannes,
 
 Time to update again, this time for CMake 2.8.8.
 
 Do you have time to do the update again in the next week or two?
 
 Thanks,
 David
 
 On Thu, Jan 5, 2012 at 4:47 PM, Johannes Zarl johannes.z...@jku.at wrote:
  Hi David,
  
  This is great news! I have updated the matrix to use footnotes, and also
  added the 2.8.7 changes to it. The whole matrix now looks much more
  clearly:
  
  http://www.cmake.org/Wiki/CMake_Version_Compatibility_Matrix
  
  Cheers,
   Johannes
  
  On Tuesday 03 January 2012 17:25:31 David Cole wrote:
  The Cite extension is now installed on the CMake wiki. See this page
  to see what mediawiki extensions are available:
  
  http://www.cmake.org/Wiki/Special:Version
  
  --
  
  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


[CMake] Ctest memcheck trickery

2012-04-23 Thread Leif Walsh
Hi,

Another question:

I want to be able to run my tests with and without valgrind. A few tests should 
always run without valgrind, and a few others should run with helgrind and 
still others with drd. 

Currently, I have a function add_memcheck_test that invokes add_test twice and 
creates targets foo_test and memcheck_foo_test (and similar for helgrind and 
drd). So most tests use that, and a few that shouldn't use valgrind at all just 
use add_test. So I can run ctest -R memcheck or ctest -E memcheck to decide 
whether to use valgrind or not. 

But this seems like not the cmake way. I feel like I should be instead running 
ctest -D Experimental or ctest -D ExperimentalMemCheck.

Is there a way to use these but still be able to disable valgrind for a few 
tests and to change the options (--tool=helgrind for example) for a few others? 
Something like set properties on those tests, to set 
CMAKE_MEMORYCHECK_COMMAND(_OPTIONS) or whatever it is?

Sent from my iPhone 
--

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


Re: [CMake] Autotools sub project, static lib in a shared lib

2012-04-23 Thread Nicolas Desprès
Hi,

You can have a look at the ExternalProject module:
$ cmake --help-module ExternalProject

Cheers,
-Nico

On Mon, Apr 23, 2012 at 5:10 PM, Leif Walsh leif.wa...@gmail.com wrote:
 Hi,

 I have a cmake project with some weird requirements:

 It uses an external project that uses autotools. I have the other project's 
 source tree unpacked in a subdirectory. During a build of my project, I want 
 to run configure with some options, make, and make install in the 
 subdirectory, then copy a static library out of the install dir, and link 
 that into a shared library my project builds.

 In make, I'd write rules roughly like this:

 lib/libext.a: ext/configure
    (cd ext; ./configure --prefix=$(PWD)/extbuild; make; make install; install 
 extbuild/lib/libext.a lib)

 lib/libproj.so: $(objs) lib/libext.a
    cc -o $@ -shared $^

 How should I do this in cmake?

 Does the IMPORTED property of add_library help me at all?

 Sent from my iPhone
 --

 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



-- 
Nicolas Desprès
--

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


[CMake] Clear cache on upgrade?

2012-04-23 Thread Robert Dailey
I am wondering what a good rule of thumb is when upgrading CMake. Should I
delete my cache after each upgrade? I'm on Windows.
--

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

Re: [CMake] Clear cache on upgrade?

2012-04-23 Thread John Drescher
On Mon, Apr 23, 2012 at 1:46 PM, Robert Dailey rcdailey.li...@gmail.com wrote:
 I am wondering what a good rule of thumb is when upgrading CMake. Should I
 delete my cache after each upgrade? I'm on Windows.
 --

I never ever do that on windows. And I have done 100s of builds with
CMake and many upgrades since CMake 2.4.

John
--

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


Re: [CMake] Clear cache on upgrade?

2012-04-23 Thread David Cole
A good rule of thumb is to try just upgrading CMake and running it on
existing build trees. It's obviously quicker than a re-configure from
scratch.

But then, before complaining about something not working, try it in a fresh
build tree first, then if it's still wrong, complain. :-)

It's rare, although it does happen sometimes, that we make a change in
CMake itself that invalidates something that's in an existing cache.

Obviously (or maybe not depending on who you are), some sort of automated
testing, like nightly dashboards, should be doing full re-configures on a
frequent basis anyhow.


HTH,
David


On Mon, Apr 23, 2012 at 2:06 PM, John Drescher dresche...@gmail.com wrote:

 On Mon, Apr 23, 2012 at 1:46 PM, Robert Dailey rcdailey.li...@gmail.com
 wrote:
  I am wondering what a good rule of thumb is when upgrading CMake. Should
 I
  delete my cache after each upgrade? I'm on Windows.
  --

 I never ever do that on windows. And I have done 100s of builds with
 CMake and many upgrades since CMake 2.4.

 John
 --

 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

Re: [CMake] Clear cache on upgrade?

2012-04-23 Thread John Drescher
 A good rule of thumb is to try just upgrading CMake and running it on
 existing build trees. It's obviously quicker than a re-configure from
 scratch.

 But then, before complaining about something not working, try it in a fresh
 build tree first, then if it's still wrong, complain. :-)

 It's rare, although it does happen sometimes, that we make a change in CMake
 itself that invalidates something that's in an existing cache.


Fully agreed.. It has been quite rare that a CMake upgrade has caused
a problem or a need to re configure.

John
--

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


[CMake] Zero coverage being reported on gcc/Linux builds.

2012-04-23 Thread Kent Williams
cmake: 2.8.6
gcc/g++: 4.4.6-3
Red Hate Enterprise Linux 6.2

I follow the instructions here: http://www.cmake.org/Wiki/CTest/Coverage

And I have 2 different dashboards that report zero coverage:

http://testing.psychiatry.uiowa.edu/CDash/index.php?project=BRAINSStandalone
http://testing.psychiatry.uiowa.edu/CDash/index.php?project=ANTS

I don't know what's going on because I remember coverage working, and
it's obviously doing something for other projects, e.g. ITK:
http://public.kitware.com/dashboard.php?name=itk

Call me an idiot, but I can follow instructions, and following the
instructions I can find isn't doing the trick.
--

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


Re: [CMake] Clear cache on upgrade?

2012-04-23 Thread Alan W. Irwin

On 2012-04-23 14:13-0400 David Cole wrote:


A good rule of thumb is to try just upgrading CMake and running it on existing 
build trees. It's obviously quicker than a re-configure
from scratch.

But then, before complaining about something not working, try it in a fresh 
build tree first, then if it's still wrong, complain. :-)

It's rare, although it does happen sometimes, that we make a change in CMake 
itself that invalidates something that's in an existing
cache.

Obviously (or maybe not depending on who you are), some sort of automated 
testing, like nightly dashboards, should be doing full
re-configures on a frequent basis anyhow.


Just to give a slightly different view, I do reconfigure a lot more
than implied above. One reason I do it is I am often changing/updating
the CMake-based build system of whatever project I am working on, and
I don't think there are any guarantees that CMake will work in that
case without a complete reconfigure.  Furthermore, even if I am not
fiddling with the CMake-based build system, I do often try new
versions of software my software package depends on that is installed
in a non-standard location.  For that case I believe CMake just
continues to rely on the cached version of what it found before unless
you start updating the cached variables yourself, and I just prefer to
start fresh in that case (typically with PATH, PKG_CONFIG_PATH,
CMAKE_LIBRARY_PATH, and CMAKE_INCLUDE_PATH environment variables set
appropriately so the new version of the required software is found in
its non-standard location).

So even though it is the usual case that cmake reconfiguration is not
required, I think there are some obvious cases like above where it is
needed as well as not-so-obvious ones as well.  So I definitely
endorse Dave's advice above to try a fresh build whenever some aspect
of the CMake-based build and/or test system doesn't appear to be
working correctly and certainly before any error is reported.

Alan
__
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__

Linux-powered Science
__
--

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


Re: [CMake] Ignore install()

2012-04-23 Thread Andreas Schuh
Hi Stefan,

one solution I can think about is overwriting the install() command
before you traverse into these subdirectories and restoring the
default CMake behavior afterwards, i.e., something like

# overwrite install() command with a dummy macro that is a nop
macro (install)
endmacro ()

# configure build system for external libraries
add_subdirectory(external)

# replace install macro by one which simply invokes the CMake
install() function with the given arguments
macro (install)
  _install(${ARGV})
endmacro(install)

# configure build system of project own sources including installation rules
add_subdirectory(src)

Andreas

On Wed, Apr 18, 2012 at 2:12 PM, Stefan Schindler ste...@boxbox.org wrote:
 Hey guys,

 I wonder if it's possible to ignore install() commands in projects that
 are being built using add_subdirectory().

 I've got a project that builds external libraries and links statically
 to them, so there's no need to install them in the final step.

 A workaround is to remove the files after installing, but I'd rather go
 with a cleaner solution.

 Greetings,
 Stefan.
 --

 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


Re: [CMake] Reading flags that have been added with add_definitions

2012-04-23 Thread Andreas Schuh
Hi Mathias,

I simply guess that the reason for COMPILE_DEFINITIONS not including
-pedantic is, that you actually use add_definitions() for something
what it is not really intended for, i.e., the addition of compiler
flags other than those which define preprocessor macros... maybe
add_definitions() recognizes it as compiler flags and adds it to
either one of the variables which define the compiler flags. Check the
value of the target property COMPILE_FLAGS on one of the targets added
after the add_definitions() call.

However, you should actually add global compiler flags to the
(command-line argument) srings (not CMake lists!) CMAKE_CXX_FLAGS,
CMAKE_C_FLAGS, CMAKE_CXX_CONFIG, CMAKE_C_FLAGS_CONFIG.

set (CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -pedantic)

Andreas

On Wed, Apr 18, 2012 at 10:23 AM, Mathias Gaunard
mathias.gaun...@ens-lyon.org wrote:
 Is there a way to read back what flags were added with add_definitions?

 If I do

 add_definitions(DFOO=bar -pedantic)

 when I read the COMPILE_DEFINITIONS property of the directory all I have is
 FOO=bar

 How can I know the -pedantic option is being used for all targets in the
 directory?
 --

 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


[Cmake-commits] CMake branch, next, updated. v2.8.8-2669-g36ae365

2012-04-23 Thread Brad King
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project CMake.

The branch, next has been updated
   via  36ae3659c2d2cf4f7917f0ab9d5eaa5a455c0b55 (commit)
   via  69626f02b6901208c29931f59a8437f03fd82c3b (commit)
   via  2d951c1d1a01a1d7fdd677fc0309a2f2472c6c3c (commit)
  from  42d1169eaff4ec041c1393122331e8f7e763 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=36ae3659c2d2cf4f7917f0ab9d5eaa5a455c0b55
commit 36ae3659c2d2cf4f7917f0ab9d5eaa5a455c0b55
Merge: 42d1169 69626f0
Author: Brad King brad.k...@kitware.com
AuthorDate: Mon Apr 23 09:56:19 2012 -0400
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Mon Apr 23 09:56:19 2012 -0400

Merge topic 'module-no-soname' into next

69626f0 Test NO_SONAME property (#13155)
2d951c1 Support building shared libraries or modules without soname (#13155)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=69626f02b6901208c29931f59a8437f03fd82c3b
commit 69626f02b6901208c29931f59a8437f03fd82c3b
Author: Brad King brad.k...@kitware.com
AuthorDate: Mon Apr 23 09:53:29 2012 -0400
Commit: Brad King brad.k...@kitware.com
CommitDate: Mon Apr 23 09:53:29 2012 -0400

Test NO_SONAME property (#13155)

Teach the Plugin test to check that the NO_SONAME target property works
as documented.  Check that the IMPORTED targets are written with the
correct properties.  When readelf is available use it to check the
actual binary files for SONAME fields.

diff --git a/Tests/Plugin/CMakeLists.txt b/Tests/Plugin/CMakeLists.txt
index b0942c0..31ca59c 100644
--- a/Tests/Plugin/CMakeLists.txt
+++ b/Tests/Plugin/CMakeLists.txt
@@ -39,6 +39,50 @@ TARGET_LINK_LIBRARIES(example_exe kwsys)
 ADD_LIBRARY(example_mod_1 MODULE src/example_mod_1.c)
 TARGET_LINK_LIBRARIES(example_mod_1 example_exe)
 
+
+IF(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG AND
+${CMAKE_C_CREATE_SHARED_MODULE} MATCHES SONAME_FLAG)
+  # Add a second plugin that should not have any soname.
+  ADD_LIBRARY(example_mod_2 MODULE src/example_mod_1.c)
+  TARGET_LINK_LIBRARIES(example_mod_2 example_exe)
+  SET_PROPERTY(TARGET example_mod_2 PROPERTY NO_SONAME 1)
+
+  # Verify that targets export with proper IMPORTED SONAME properties.
+  EXPORT(TARGETS example_mod_1 example_mod_2 NAMESPACE exp_
+FILE ${CMAKE_CURRENT_BINARY_DIR}/mods.cmake)
+  INCLUDE(${CMAKE_CURRENT_BINARY_DIR}/mods.cmake)
+  GET_PROPERTY(configs TARGET exp_example_mod_1 PROPERTY 
IMPORTED_CONFIGURATIONS)
+  FOREACH(c ${configs})
+STRING(TOUPPER ${c} CONFIG)
+GET_PROPERTY(soname1 TARGET exp_example_mod_1 PROPERTY 
IMPORTED_SONAME_${CONFIG})
+GET_PROPERTY(soname2 TARGET exp_example_mod_2 PROPERTY 
IMPORTED_NO_SONAME_${CONFIG})
+IF(soname1)
+  MESSAGE(STATUS exp_example_mod_1 has IMPORTED_SONAME_${CONFIG} as 
expected: ${soname1})
+ELSE()
+  MESSAGE(SEND_ERROR exp_example_mod_1 does not have 
IMPORTED_SONAME_${CONFIG} but should)
+ENDIF()
+IF(soname2)
+  MESSAGE(STATUS exp_example_mod_2 has IMPORTED_NO_SONAME_${CONFIG} as 
expected: ${soname2})
+ELSE()
+  MESSAGE(SEND_ERROR exp_example_mod_2 does not have 
IMPORTED_NO_SONAME_${CONFIG} but should)
+ENDIF()
+  ENDFOREACH()
+
+  # Parse the binary to check for SONAME if possible.
+  IF(${CMAKE_EXECUTABLE_FORMAT} MATCHES ELF)
+FIND_PROGRAM(READELF_EXE readelf)
+IF(READELF_EXE)
+  ADD_CUSTOM_TARGET(check_mod_soname ALL COMMAND
+${CMAKE_COMMAND} -Dreadelf=${READELF_EXE}
+ -Dmod1=$TARGET_FILE:example_mod_1
+ -Dmod2=$TARGET_FILE:example_mod_2
+-P ${CMAKE_CURRENT_SOURCE_DIR}/check_mod_soname.cmake
+)
+  ADD_DEPENDENCIES(check_mod_soname example_mod_1 example_mod_2)
+ENDIF()
+  ENDIF()
+ENDIF()
+
 # TODO:
 #  - create a plugin that links to a static lib
 #  - create a plugin that links to a shared lib
diff --git a/Tests/Plugin/check_mod_soname.cmake 
b/Tests/Plugin/check_mod_soname.cmake
new file mode 100644
index 000..3737b45
--- /dev/null
+++ b/Tests/Plugin/check_mod_soname.cmake
@@ -0,0 +1,14 @@
+execute_process(COMMAND ${readelf} -d ${mod1} OUTPUT_FILE ${mod1}.readelf.txt)
+execute_process(COMMAND ${readelf} -d ${mod2} OUTPUT_FILE ${mod2}.readelf.txt)
+file(STRINGS ${mod1}.readelf.txt soname1 REGEX \\(SONAME\\))
+file(STRINGS ${mod2}.readelf.txt soname2 REGEX \\(SONAME\\))
+if(soname1)
+  message(STATUS ${mod1} has soname as expected: ${soname1})
+else()
+  message(FATAL_ERROR ${mod1} has no soname but should:\n  ${soname1})
+endif()
+if(soname2)
+  message(FATAL_ERROR ${mod2} has soname but should not:\n  ${soname2})
+else()
+  message(STATUS ${mod2} has no soname as 

[Cmake-commits] CMake branch, next, updated. v2.8.8-2671-gb9fe606

2012-04-23 Thread Brad King
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project CMake.

The branch, next has been updated
   via  b9fe606aff25f7940082e60bedb0b1cd28176aaa (commit)
   via  6ad39679856a5fc9a90c24923af8e48901923cb6 (commit)
  from  36ae3659c2d2cf4f7917f0ab9d5eaa5a455c0b55 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b9fe606aff25f7940082e60bedb0b1cd28176aaa
commit b9fe606aff25f7940082e60bedb0b1cd28176aaa
Merge: 36ae365 6ad3967
Author: Brad King brad.k...@kitware.com
AuthorDate: Mon Apr 23 11:37:55 2012 -0400
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Mon Apr 23 11:37:55 2012 -0400

Merge topic 'module-no-soname' into next

6ad3967 OS X: Fix Framework install-name after NO_SONAME change


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ad39679856a5fc9a90c24923af8e48901923cb6
commit 6ad39679856a5fc9a90c24923af8e48901923cb6
Author: Brad King brad.k...@kitware.com
AuthorDate: Mon Apr 23 11:20:12 2012 -0400
Commit: Brad King brad.k...@kitware.com
CommitDate: Mon Apr 23 11:30:13 2012 -0400

OS X: Fix Framework install-name after NO_SONAME change

Commit 2d951c1d (Support building shared libraries or modules without
soname, 2012-04-22) factored test logic out of cmTarget::GetSOName to
create cmTarget::HasSOName, but it took slightly too much of the test.
OS X frameworks do have an install-name (OS X equivalent to soname) but
do not have versioned file names.  Move that piece of the test logic
back to its original location.

diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 05ded57..c96ca94 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -3025,8 +3025,7 @@ bool cmTarget::HasSOName(const char* config)
   return ((this-GetType() == cmTarget::SHARED_LIBRARY ||
this-GetType() == cmTarget::MODULE_LIBRARY) 
   !this-GetPropertyAsBool(NO_SONAME) 
-  this-Makefile-GetDefinition(sonameFlag.c_str()) 
-  !this-IsFrameworkOnApple());
+  this-Makefile-GetDefinition(sonameFlag.c_str()));
 }
 
 //
@@ -3365,7 +3364,8 @@ void cmTarget::GetLibraryNames(std::string name,
   // Check for library version properties.
   const char* version = this-GetProperty(VERSION);
   const char* soversion = this-GetProperty(SOVERSION);
-  if(!this-HasSOName(config))
+  if(!this-HasSOName(config) ||
+ this-IsFrameworkOnApple())
 {
 // Versioning is supported only for shared libraries and modules,
 // and then only when the platform supports an soname flag.

---

Summary of changes:
 Source/cmTarget.cxx |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)


hooks/post-receive
-- 
CMake
___
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits


[Cmake-commits] CMake branch, next, updated. v2.8.8-2674-gfc1af7e

2012-04-23 Thread Eric Noulard
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project CMake.

The branch, next has been updated
   via  fc1af7e4b79ecd4d76d78d4535fa45fc5be0fd09 (commit)
   via  83729f978f02b36f7d0f1e44439450d7d61a4aa6 (commit)
   via  5b97942cbb915e8eaff0b5b9fee0676296656c93 (commit)
  from  b9fe606aff25f7940082e60bedb0b1cd28176aaa (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fc1af7e4b79ecd4d76d78d4535fa45fc5be0fd09
commit fc1af7e4b79ecd4d76d78d4535fa45fc5be0fd09
Merge: b9fe606 83729f9
Author: Eric Noulard eric.noul...@gmail.com
AuthorDate: Mon Apr 23 14:52:42 2012 -0400
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Mon Apr 23 14:52:42 2012 -0400

Merge topic 'EnhanceBash-completion-part1' into next

83729f9 Install editors helper files
5b97942 Enhancement of bash completion scripts given by Igor Murzov.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=83729f978f02b36f7d0f1e44439450d7d61a4aa6
commit 83729f978f02b36f7d0f1e44439450d7d61a4aa6
Author: Eric NOULARD eric.noul...@gmail.com
AuthorDate: Mon Apr 23 20:48:17 2012 +0200
Commit: Eric NOULARD eric.noul...@gmail.com
CommitDate: Mon Apr 23 20:49:33 2012 +0200

Install editors helper files

diff --git a/Docs/CMakeLists.txt b/Docs/CMakeLists.txt
index 0848fef..b04b32d 100644
--- a/Docs/CMakeLists.txt
+++ b/Docs/CMakeLists.txt
@@ -1,2 +1,4 @@
 string(REGEX REPLACE ^/(.*) \\1 REL_CMAKE_DATA_DIR ${CMAKE_DATA_DIR})
+install(FILES cmake-help.vim cmake-indent.vim cmake-syntax.vim DESTINATION 
${REL_CMAKE_DATA_DIR}/editors/vim)
+install(FILES cmake-mode.el DESTINATION ${REL_CMAKE_DATA_DIR}/editors/emacs)
 ADD_SUBDIRECTORY (bash-completion)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5b97942cbb915e8eaff0b5b9fee0676296656c93
commit 5b97942cbb915e8eaff0b5b9fee0676296656c93
Author: Eric NOULARD eric.noul...@gmail.com
AuthorDate: Sun Apr 22 19:08:29 2012 +0200
Commit: Eric NOULARD eric.noul...@gmail.com
CommitDate: Mon Apr 23 20:46:08 2012 +0200

Enhancement of bash completion scripts given by Igor Murzov.

The orginal patch has been reworked in order to follow
CMake source tree layout habit.

Inspired-By: Igor Murzov e-m...@date.by

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b1d5930..66f9b2d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -620,6 +620,9 @@ INSTALL(
   WORLD_READ WORLD_EXECUTE
   )
 
+# process docs related install
+ADD_SUBDIRECTORY(Docs)
+
 #---
 # End of the main section of the CMakeLists file
 #---
diff --git a/Docs/CMakeLists.txt b/Docs/CMakeLists.txt
new file mode 100644
index 000..0848fef
--- /dev/null
+++ b/Docs/CMakeLists.txt
@@ -0,0 +1,2 @@
+string(REGEX REPLACE ^/(.*) \\1 REL_CMAKE_DATA_DIR ${CMAKE_DATA_DIR})
+ADD_SUBDIRECTORY (bash-completion)
diff --git a/Docs/bash-completion/CMakeLists.txt 
b/Docs/bash-completion/CMakeLists.txt
new file mode 100644
index 000..592b71e
--- /dev/null
+++ b/Docs/bash-completion/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Always install completion file in local dir
+# in order to be sure to always be able to install
+# in a local user directory rooted in a single directory.
+# packager should either patch that out or
+# add symlinks to the files in appropriate places
+#  /etc/bash_completion.d/
+#  DATADIR/completions (may be /usr/share/package/completions
+install(FILES cmake cpack ctest DESTINATION ${REL_CMAKE_DATA_DIR}/completions)
diff --git a/Docs/bash-completion/cmake b/Docs/bash-completion/cmake
new file mode 100644
index 000..59b565a
--- /dev/null
+++ b/Docs/bash-completion/cmake
@@ -0,0 +1,149 @@
+# bash completion for cmake(1) -*- shell-script -*-
+
+_cmake()
+{
+local cur prev words cword split=false
+_init_completion -n := || return
+
+# Workaround for options like -DCMAKE_BUILD_TYPE=Release
+local prefix=
+if [[ $cur == -D* ]]; then
+prev=-D
+prefix=-D
+cur=${cur#-D}
+elif [[ $cur == -U* ]]; then
+prev=-U
+prefix=-U
+cur=${cur#-U}
+fi
+
+case $prev in
+-D)
+if [[ $cur == *=* ]]; then
+# complete values for variables
+local var type value
+var=${cur%%[:=]*}
+value=${cur#*=}
+
+if [[ $cur == CMAKE_BUILD_TYPE* ]]; then # most widely used 
case
+COMPREPLY=( $( compgen -W 'Debug Release RelWithDebInfo
+MinSizeRel' -- $value ) )
+

[Cmake-commits] CMake branch, master, updated. v2.8.8-22-g3d28c5d

2012-04-23 Thread KWSys Robot
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project CMake.

The branch, master has been updated
   via  3d28c5dc47fec7257e2da3e6d9cc467632438b11 (commit)
  from  93e6069553874e11af8915da68996fb4323d4a52 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3d28c5dc47fec7257e2da3e6d9cc467632438b11
commit 3d28c5dc47fec7257e2da3e6d9cc467632438b11
Author: Kitware Robot kwro...@kitware.com
AuthorDate: Tue Apr 24 00:01:03 2012 -0400
Commit: Kitware Robot kwro...@kitware.com
CommitDate: Tue Apr 24 00:01:03 2012 -0400

CMake Nightly Date Stamp

diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index 2c0122c..67f3d2f 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -2,5 +2,5 @@
 SET(CMake_VERSION_MAJOR 2)
 SET(CMake_VERSION_MINOR 8)
 SET(CMake_VERSION_PATCH 8)
-SET(CMake_VERSION_TWEAK 20120423)
+SET(CMake_VERSION_TWEAK 20120424)
 #SET(CMake_VERSION_RC 1)

---

Summary of changes:
 Source/CMakeVersion.cmake |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
CMake
___
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits