Re: [CMake] hook __EOF__

2011-08-15 Thread t m
Hi All,

I guess it's not commonly used feature. Does anyone who knows a code
of cmake a bit can provide information if that's possible at all?

Thanks, T Majchrowski.


2011/8/11 t m cm...@majchrowski.co.uk:
 Hi All,

 Is it possible to register hook function that will be called at the
 end of processinf of CMakeLists.txt:
 Example CMakeLists.txt


 0:cmake_minimum_required( VERSION 2.6 )
 1:project( foo.project)
 2:
 3: add_subdirectory( example )
 4:
 ...
 N: -- last line of CMakeLists.txt this will trigger to call other funcion.


 I mean something simillar like variable_watch but the trigger will be
 __EOF__ CMakeLists.txt file not a variable (e.g. eof_watch)

___
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] hook __EOF__

2011-08-15 Thread Michael Wild
On Mon 15 Aug 2011 10:12:59 AM CEST, t m wrote:
 Hi All,
 
 I guess it's not commonly used feature. Does anyone who knows a code
 of cmake a bit can provide information if that's possible at all?
 
 Thanks, T Majchrowski.
 
 
 2011/8/11 t m cm...@majchrowski.co.uk:
 Hi All,

 Is it possible to register hook function that will be called at the
 end of processinf of CMakeLists.txt:
 Example CMakeLists.txt


 0:cmake_minimum_required( VERSION 2.6 )
 1:project( foo.project)
 2:
 3: add_subdirectory( example )
 4:
 ...
 N: -- last line of CMakeLists.txt this will trigger to call other funcion.


 I mean something simillar like variable_watch but the trigger will be
 __EOF__ CMakeLists.txt file not a variable (e.g. eof_watch)

No, it's not possible, and I don't see any Plugin-Hook you could use 
for that (others might correct me, though). The only way around this is 
to place the function call at the end of every CMakeLists.txt file 
manually.

Michael
___
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] append command

2011-08-15 Thread David Cole


On Aug 13, 2011, at 2:57 PM, Clifford Yapp cliffy...@gmail.com wrote:

 On Sat, Aug 13, 2011 at 5:14 AM, Glenn Coombs glenn.coo...@gmail.com wrote:
 
 I haven't seen any discussion yet of my 2nd alternative of getting cmake to
 automatically convert lists to space separated strings for certain variables
 like CMAKE_EXE_LINKER_FLAGS_RELEASE.  If cmake did this then there would be
 less need for the concat version of set() as one could just use the existing
 list(APPEND) functionality.  Is this a realistic possibility, or are there
 implementation issues with this suggestion ?
 
 This surprised me as well - if you want to assemble a list of flags
 on the fly (I needed to assemble lists of lists of flags - we pass a
 lot of them) you have to take some care to either do the set trick
 correctly or convert the list to a string at the end (if you can be
 sure of where that is).
 
 Do I understand correctly that the main concern is the ability to pass
 args with ;' characters in these cases?  Then the question becomes
 whether quoting ; characters as needed in user-specified options is
 tricker than navigating the current behavior.  To be honest, I can see
 where trying to specify an argument with a quoted ; character from
 the command line would get a bit messy (in a ok, how do I quote this
 from this enviornment sort of way) - how common are ; characters as
 components of variable values?

Again, our main concern here will be backward compatibility, not difficulty of 
encoding semi-colons...

There are tons of real-world projects that already use all of these variables 
and properties being discussed with their current semantics.


 
 Cheers,
 CY
 ___
 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] Sub dependencies?

2011-08-15 Thread David Cole
What is line 49 of your CMakeLists file...? The output indicates it has a 
command on it that yields the error...


On Aug 12, 2011, at 9:55 PM, Doug douglas.lin...@gmail.com wrote:

 I see.
 
 I've tried this approach and I get the error:
 -- Found LIBPNG
 CMake Error at CMakeLists.txt:49 (export):
   export given target /usr/lib/libpng.so which is not built by this
   project.
 
 
 -- Configuring incomplete, errors occurred!
 
 ~
 Doug.
 
 On Fri, Aug 12, 2011 at 4:57 PM, Michael Wild them...@gmail.com wrote:
 On Fri 12 Aug 2011 10:49:45 AM CEST, Doug wrote:
  I'm sorry if I'm being dumb here, but I fail to see how that helps.
 
  That example is one where foobar depends explicitly on foo and bar.
 
  What if foo depends on bar2?
 
  How do I inherit that dependency from foo in foobar?
 
  _that's_ what I'm looking for.
 
  (If that example somehow explains that, I'm sorry, I can't see it. Can
  you point to a specific point in the page?)
 
  ~
  Doug.
 
  On Fri, Aug 12, 2011 at 2:34 PM, Michael Wild them...@gmail.com
  mailto:them...@gmail.com wrote:
 
  If the projects are independent, you might want to take a look at this
  Wiki page:
  
  http://www.cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file.
 
  HTH
 
  Michael
 
 
 And that is what the example is *about*. The FooBar project *exports*
 its targets, along with their dependencies, so that when other projects
 do find_package(FooBar), they will be able to link against the foo
 library without having to know any of the dependencies of it. E.g. the
 project hello might look like this:
 
 project(hello)
 find_package(FooBar REQUIRED)
 include_directories(${FOOBAR_INCLUDE_DIRS})
 add_executable(hello hello.c)
 target_link_libraries(hello ${FOOBAR_LIBRARIES})
 
 
 Michael
 
 ___
 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] masm msvc

2011-08-15 Thread Micha Renner
This script...

# Copy  paste from CMake Wiki
# Works only if CMake runs in the Visual Studio DOS Window 
SET(MASMFound FALSE)
# test whether it is a x86 machine and masm is available
IF(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86)
ENABLE_LANGUAGE(ASM_MASM)
IF(CMAKE_ASM_MASM_COMPILER_WORKS)
SET(MASMFound TRUE)
ENDIF(CMAKE_ASM_MASM_COMPILER_WORKS)
ENDIF(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86)
# no assembler found
IF(NOT MASMFound)
MESSAGE(STATUS NOT)
ENDIF(NOT MASMFound)

...generates still the message:
The ASM_MASM compiler identification is unknown --!
Found assembler: C:/Program Files/Microsoft Visual Studio
10.0/VC/bin/ml.exe

-
# cAsm.asm is the main program
ADD_EXECUTABLE(tt cAsm.asm)

In Visual Studio the masm starts, but generates these nice messages:
3MASM : warning A4018: invalid command-line option : /STACK:1000
3MASM : warning A4018: invalid command-line option : /SACK:1000
3MASM : warning A4018: invalid command-line option : /SCK:1000
3MASM : warning A4018: invalid command-line option : /SK:1000
3MASM : warning A4018: invalid command-line option : /S:1000
3MASM : warning A4018: invalid command-line option : /S1000
3MASM : warning A4018: invalid command-line option : /S000
3MASM : warning A4018: invalid command-line option : /S00
3MASM : warning A4018: invalid command-line option : /S0
3MASM : warning A4018: invalid command-line option : /S
3MASM : warning A4018: invalid command-line option : /S000
3MASM : warning A4018: invalid command-line option : /S00
3MASM : warning A4018: invalid command-line option : /S0
3  Microsoft (R) Macro Assembler Version 10.00.30319.01
3  Copyright (C) Microsoft Corporation.  All rights reserved.
3  
3MASM : warning A4018: invalid command-line option : /machine:X86
3MASM : warning A4018: invalid command-line option : /debug
3MASM : warning A4018: invalid command-line option : /subsystem:console
3MASM : warning A4018: invalid command-line option : -o
3   Assembling: tt.exe
3MASM : fatal error A1000: cannot open file : tt.exe

# --
ADD_EXECUTABLE(tt cTest.c cAsm2.asm)
main in cTest.c. cAsm2.asm has a function only.
Visual Studio does not start the masm. A right click on cAsm2.asm in the
project explorer = properties
says: element type: Not part of the build.

# --
The only way to use the masm seems to be:
ADD_CUSTOM_COMMAND(OUTPUT cAsm2.obj
COMMAND ${CMAKE_ASM_MASM_COMPILER} -c
${CMAKE_CURRENT_SOURCE_DIR}/cAsm2.asm
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/cAsm2.asm
COMMENT generate cAsm2.obj) 

ADD_EXECUTABLE(cTest CTest.c cAsm2.obj)

Greetings

Micha



___
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] append command

2011-08-15 Thread Clifford Yapp
On Mon, Aug 15, 2011 at 7:59 AM, David Cole david.c...@kitware.com wrote:

 Again, our main concern here will be backward compatibility, not difficulty 
 of encoding semi-colons...
 There are tons of real-world projects that already use all of these variables 
 and properties being discussed with their current semantics.

nods Understood and agreed.  I had in the back of my mind a
CMAKE_POLICY CMP00## rule of some sort but that would be quite
disruptive...  the other approach that comes to mind would be to have
CMAKE_* variables accept a property of their own telling CMake whether
to treat them as space-separated strings or semi-colon separated lists
with defaults set to the current behavior (although would have the
advantage of not changing behaviors unless the build logic
specifically asked for a different behavior.)

Cheers,
CY
___
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 and NaCl (Google NativeClient)

2011-08-15 Thread Jean-Christophe Fillion-Robin
Hi Nils,

Did you try to specify an empty value for the following properties:
  CMAKE_OSX_SYSROOT
  CMAKE_OSX_DEPLOYMENT_TARGET
  CMAKE_OSX_ARCHITECTURES

?

On Thu, Aug 11, 2011 at 8:17 AM, Nils Hjelte n...@algoryx.se wrote:

 Hello!

 I'm trying to port a C++ project to NaCl
 (http://code.google.com/chrome/nativeclient/), with cmake as the build
 system, and I need to figure out some things. I am using a Mac as
 build machine. I have changed the CMAKE_CXX_COMPILER/LINKER variables
 to use the nacl toolchain. What I would like to know is if it is
 possible to discard all the default compiler flags. I get lots of
 flags that the nacl compiler does not like,

 example:
 -mmacosx-version-min=10.5
 -arch i386
 -isysroot /Developer/SDKs/MacOSX10.7.sdk

 and the linker adds these flags that I can not get rid of:
 -compatibility_version 1.12.0
 -current_version 1.12.0


 Ideally I would like an empty compile command where I can explicitly
 add the flags needed. Is it possible with CMake?


 // Nils
 ___
 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




-- 
+1 919 869 8849
___
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] Fwd: [CMake 0012398]: IF infamous variable/string functionality fails to work with macro arguments

2011-08-15 Thread David Cole
Thanks, Michael...

I'll give this another week or so here on the mailing list (and in the
bug tracker) to gather feedback.

If I don't hear anything else, I'll consider changing some
documentation to clarify the existing situation, but I don't see a
reasonable way to accommodate this feature request *and* maintain
backwards compatibility with existing real world uses of macro and if
commands.


David C.


On Sat, Aug 13, 2011 at 3:39 AM, Michael Wild them...@gmail.com wrote:
 For most users, macros should be a taboo anyways. They are much better
 served by functions, IMHO. In all of my projects I had only one case
 where I actually needed a macro. That was when I wrapped a function
 that set some variables in the PARENT_SCOPE and I had to propagate them
 outside of the wrapping macro without knowing their name.

 Perhaps it would be enough to just properly document the quirky
 behaviour of macro arguments in the docs and mention that one should
 normally prefer functions over macros unless there is a real reason
 that requires a macro?

 Michael


 On Fri 12 Aug 2011 09:29:21 PM CEST, David Cole wrote:
 Does anybody here on the list have an opinion one way or the other on
 whether it's worth pursuing a fix to this re-opened bug regarding
 CMake macro and if command behavior...?

 Thanks for any input, either here on the list, or directly in the bug
 notes themselves.


 Thanks,
 David



 -- Forwarded message --
 From: Mantis Bug Tracker man...@public.kitware.com
 Date: Fri, Aug 12, 2011 at 2:49 PM
 Subject: [CMake 0012398]: IF infamous variable/string
 functionality fails to work with macro arguments
 To: david.c...@kitware.com



 The following issue has been REOPENED.
 ==
 http://public.kitware.com/Bug/view.php?id=12398
 ==
 Reported By:                freddie
 Assigned To:                David Cole
 ==
 Project:                    CMake
 Issue ID:                   12398
 Category:                   CMake
 Reproducibility:            always
 Severity:                   major
 Priority:                   normal
 Status:                     feedback
 ==
 Date Submitted:             2011-08-12 08:13 EDT
 Last Modified:              2011-08-12 14:49 EDT
 ==
 Summary:                    IF infamous variable/string functionality 
 fails
 to work with macro arguments
 Description:
 There is a problem with the IF command when it is used directly with macro
 arguments. Apparently, they are not considered variables and are used 
 directly
 as strings.

 However, if their contents can be construed as variables themselves (even 
 though
 it is not desired), we have a problem when the only way to perform the test 
 is
 to create another explicit variable assigning it to what the macro argument
 contains.

 The problem doesn't appear to pertain to functions.

 Steps to Reproduce:
 Please use the attached CMakeLists.txt file with cmake -Wno-dev ..

 Additional Information:
 It would really be a good idea to create a version of if/elseif/else/endif 
 which
 does NOT attempt to treat its arguments as variables, either by creating a 
 new
 name for the command or, better yet, by adding a new policy (possibly not
 associated with a version yet).

 Otherwise, when trying to compare things which might be variables but should 
 not
 be treated as such for the purposes of the comparison, one runs into subtle
 problems (when checks randomly fail) or has to create a level of 
 indirection,
 by setting a new variable just for that.

 I am sure you've heard this all before.
 ==
 Relationships       ID      Summary
 --
 duplicate of        0009590 IF(VARIABLE) doesn't work inside Makro
 ==

 --
  (0027199) freddie (reporter) - 2011-08-12 14:49
  http://public.kitware.com/Bug/view.php?id=12398#c27199
 --
 Your comparison of macro with preprocessor macros makes sense. If only it 
 worked
 that way. In cmake language, ${foo} expands a variable; if ARGV0 is not a
 variable, then you must either substitute ARGV0 for what was specified in the
 parameter list for the macro, or use a different expansion {#{ARGV0}, for
 instance); otherwise, people who can't be called stupid will keep running 
 into
 these problems.

 However, the analogy stops there; FUNCTION is not equivalent to functions or
 methods in C/C++ in the sense that variables are 

Re: [CMake] Fwd: [CMake 0012398]: IF infamous variable/string functionality fails to work with macro arguments

2011-08-15 Thread John Drescher
On Mon, Aug 15, 2011 at 11:26 AM, David Cole david.c...@kitware.com wrote:
 Thanks, Michael...

 I'll give this another week or so here on the mailing list (and in the
 bug tracker) to gather feedback.

 If I don't hear anything else, I'll consider changing some
 documentation to clarify the existing situation, but I don't see a
 reasonable way to accommodate this feature request *and* maintain
 backwards compatibility with existing real world uses of macro and if
 commands.


I would like to see the documentation expanded to better explain the
differences between a function and a macro. Before this discussion I
have never used a function (did not understand what that gave me over
a macro) however I have ran into this problem with using if statements
in macros.

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] Getting library dependency files without full paths

2011-08-15 Thread Michael Schutte
Hi everyone,

I am currently dealing with some Debian library packages that ship
*LibraryDepends.cmake files with absolute paths to their required shared
objects.  Due to the ongoing multiarch transition, many of these .so
files are moved down the directory hierarchy, so that libraries for
multiple architectures can be installed in parallel.  Of course this
frequently breaks the build of the offending packages' reverse
dependencies.

It seems that substituting /usr/lib/($MULTIARCH_DIR/)?lib$NAME.so;
with $NAME; in these files doesn't cause any problems; most
importantly, CMake still manages to find the libraries for transitive
linking.  Are there any non-obvious issues if this hack is implemented?
Is there a way to tell CMake to not record full paths for .so's in
default locations?

Cheers and thanks in advance,
-- 
Michael Schutte   | michi@{uiae.at,debian.org}
Innsbruck, Austria| happily accepting encrypted mail
OpenPGP: 0x16fb 517b a866 c3f6 8f11 1485 f3e4 122f 1D8C 261A
___
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] Fwd: [CMake 0012398]: IF infamous variable/string functionality fails to work with macro arguments

2011-08-15 Thread Albert Meltzer
On Mon, Aug 15, 2011 at 3:26 PM, David Cole david.c...@kitware.com wrote:

 documentation to clarify the existing situation, but I don't see a
 reasonable way to accommodate this feature request *and* maintain
 backwards compatibility with existing real world uses of macro and if


Umm... once again, doesn't this case look perfect for using a policy?

If cmake knew the difference between identifiers and strings (foo vs.
bar), I wouldn't mind having IF recognize foo as a variable - and only a
variable (if undefined, it shouldn't be treated as foo) - and bar (or
${HAVE_${foo}}) as a string, and behave accordingly.

Otherwise, IF(var) instead of IF(${var}) isn't much of a benefit to me,
given the drawbacks. The unpredictable and inconsistent treatment of its
arguments by IF() is something I'd consider a major drawback.

Every mode of IF() has its own set of variable-vs-string rules. Why does
STREQUAL expect variables on both side and MATCHES doesn't? How should I
remember that? Does EXISTS allow specifying a variable - or only a string
will do? How should I remember that? What if I define SET(YES NO); how do I
remember what IF(YES) will do?

Maybe the esteemed colleagues would suggest another good and reliable way to
handle situations such as this:

IF (lang STREQUAL perl) ...
ELSEIF(lang STREQUAL python) ...
ELSEIF()
...
ENDIF ()

without having to SET(perl perl) (and all the other cases in this switch)
myself (just in case), but still being afraid that somebody, somewhere else,
would SET(perl 5.10.0), and without resorting to IF (lang MATCHES ^perl$)?

On Sat, Aug 13, 2011 at 3:39 AM, Michael Wild them...@gmail.com wrote:
  For most users, macros should be a taboo anyways. They are much better


If MACRO is taboo, deprecate it. Having an active command exhibit peculiar
and hard-to-debug behaviour in conjunction with another active command is
hardly a way to deter people from using it. However...

 served by functions, IMHO. In all of my projects I had only one case
  where I actually needed a macro. That was when I wrapped a function
  that set some variables in the PARENT_SCOPE and I had to propagate them
  outside of the wrapping macro without knowing their name.


... bingo. It is possible that we are relatively light users, but our use
case involves thousands of directories, half of them libraries with complex
dependency chains, 5k+ lines of specialized cmake code (not counting the
per-directory CMakeLists.txt); I have tried to use functions as much as
possible, and this don't know what variables are being set and how deep my
call stack is is effectively ruling it out in most cases.

Maybe having an easier way to work with properties would help, so that they
can behave like variables. Something like this, for instance:

${dir:var} - property for directory dir
${:var} - property for current directory
${::var} - global property

or

${#GLB:var}
${#DIR:dir:var}
${#SRC:src:var}
${#TGT:tgt:var}
${#TST:tst:var}
${#CCH:entry:var}

with all the requisite DEFINED etc. tests.

 Perhaps it would be enough to just properly document the quirky
  behaviour of macro arguments in the docs and mention that one should
  normally prefer functions over macros unless there is a real reason
  that requires a macro?


Properly documenting everything would be nice in general. Emphasizing
stumbling blocks such as these would be nice. Having a separate section on
here is what you should pay attention to would also be nice. Documenting
what happens when a command fails would be nice, too (STRING(REGEX MATCH) if
no match, FILE(READ) if no file etc.) Explaining how to use STRING(FIND)
with STRING(SUBSTRING), if that is even possible, and whether any sort of
arithmetic is available would be good.

Maybe I missed it, but the documentation page below appeared not mention
such basic stuff as how to expand a variable (the ${} syntax is kind of
implied):

http://www.cmake.org/cmake/help/cmake-2-8-docs.html
___
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] append command

2011-08-15 Thread Alexander Neundorf
On Friday 12 August 2011, Michael Hertling wrote:
 On 08/11/2011 10:04 PM, Alexander Neundorf wrote:
  On Thursday 11 August 2011, Michael Hertling wrote:
  ...
  
  Alternatively, one might consider to introduce a new, say,
  modifier CONCAT for the SET() command, e.g.
  
  SET(variable value ... CONCAT [SEP sep])
  
  equivalent to
  
  SET(variable ${variable}sepvalue...)
  
  I'm not sure this is actually necessary.
  Personally I'm fine with
  set(foo ${foo} bar)
  It's just one line. For properties more code is needed otherwise.
 
 So far, I also don't need such a string concatenation feature, but
 
 LIST(APPEND ...)
 
 and
 
 SET_PROPERTY(... APPEND/APPEND_STRING ...)
 
 aren't actually necessary, too, but convenient, so I would not be
 opposed to another convenience feature for concatenating strings.
 
  Besides, David, due to the same reasons as mentioned above, the new
  APPEND_STRING subcommand of SET_PROPERTY() is quite misnamed, IMO -
  and quite long. Would it be possible to rename it to CONCAT before
  it is released officially? In this way, we would consistently have
  APPEND subcommands for list-style variables/properties and CONCAT
  subcommands for string-style ones.
  
  We can do that, if other people think also that this would be a better
  name. Or STRING_APPEND instead of APPEND_STRING ?
 
 The crucial point is that the subcommand/modifier for concatenating
 strings - regardless for which command(s) it is implemented - should
 
 - not be named APPEND because this term is already in use for lists,
   and there's at least one occasion where a list-related and a string-
   related += operation are about to coincide, namely SET_PROPERTY().
 - be named the same in all commands that provide - or possibly will
   provide - this functionality. SET_PROPERTY() is going to name it
   APPEND_STRING, a longish and unfortunate misnomer, IMO, that will
   result in inconsistent CMakeLists.txt code if there'll be a SET()
   or STRING() implementation for concatenating strings: Certainly,
   one would not want to call the latter SET(... APPEND_STRING) or
   STRING(STRING_APPEND ...), so one ends up with two differently
   named subcommands/modifiers for the same kind of operation.
 
 For this reason, I'd recommend to reconsider the APPEND_STRING sub-
 command's naming and change it to a term that's also suitable for
 a string concatenation feature in other CMake commands - just to
 leave the door open. Therefor, my suggestion is CONCAT.

Anybody else has an opinion on this ?
I have no preferences among APPEND_STRING, STRING_APPEND and CONCAT.

Alex
___
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] Nested Project()

2011-08-15 Thread klaas.holwerda

Hi,

I have several nested directories, and each directory contains a CMakeLists.txt 
file.
And most start with PROJECT(  ) Where xxx is some name for what I like to 
contains some targets.

In VC it is possible to create in the top solution, so called solution folders.
Why does CMake not use the PROJECT() statement to create such solution folders, in order to group 
targets?


If I remember well, in older versions of Cmake its VC generators, this was like 
that.
I even remember the documentation of PROJECT() did mention it as a special 
feature for VC in those days.
Why is it gone?

Regards,

Klaas





___
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-developers] Automoc in cmake

2011-08-15 Thread Alexander Neundorf
On Tuesday 16 August 2011, Alexander Neundorf wrote:
...
 There is now a branch AutomocForQt on the cmake stage.
 Docs and a test are still missing.

It has a test now. Docs are still missing.

Alex
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[Cmake-commits] CMake branch, next, updated. v2.8.5-1554-g6e5d786

2011-08-15 Thread Alexey Ozeritsky
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  6e5d7869eb78b26d35405857d5351b294e6303d5 (commit)
   via  d5e603026b9bfde90742483df322e0c168407fef (commit)
   via  af4c58b3bd92f69cce195c3e491d40071b8d0b08 (commit)
  from  553a4c956404dc0f53fb33b304b81922c9f7c089 (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=6e5d7869eb78b26d35405857d5351b294e6303d5
commit 6e5d7869eb78b26d35405857d5351b294e6303d5
Merge: 553a4c9 d5e6030
Author: Alexey Ozeritsky aozerit...@gmail.com
AuthorDate: Mon Aug 15 09:38:30 2011 -0400
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Mon Aug 15 09:38:30 2011 -0400

Merge topic 'FindLAPACK_FindBLAS' into next

d5e6030 ACML-GPU supportede
af4c58b ACML-GPU supported


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d5e603026b9bfde90742483df322e0c168407fef
commit d5e603026b9bfde90742483df322e0c168407fef
Author: Alexey Ozeritsky aozerit...@gmail.com
AuthorDate: Sat Aug 13 18:50:57 2011 +0400
Commit: Alexey Ozeritsky aozerit...@gmail.com
CommitDate: Sat Aug 13 18:50:57 2011 +0400

ACML-GPU supportede

diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake
index 1219102..80fe867 100644
--- a/Modules/FindLAPACK.cmake
+++ b/Modules/FindLAPACK.cmake
@@ -165,11 +165,11 @@ endif (BLA_VENDOR STREQUAL Goto OR BLA_VENDOR STREQUAL 
All)
 
 
 #acml lapack
- if (BLA_VENDOR STREQUAL ACML OR BLA_VENDOR STREQUAL ACML_MP OR BLA_VENDOR 
STREQUAL All)
+ if (BLA_VENDOR STREQUAL ACML.* OR BLA_VENDOR STREQUAL All)
if (BLAS_LIBRARIES MATCHES .+acml.+)
  set (LAPACK_LIBRARIES ${BLAS_LIBRARIES})
endif ()
- endif (BLA_VENDOR STREQUAL ACML OR BLA_VENDOR STREQUAL ACML_MP OR 
BLA_VENDOR STREQUAL All)
+ endif ()
 
 # Apple LAPACK library?
 if (BLA_VENDOR STREQUAL Apple OR BLA_VENDOR STREQUAL All)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=af4c58b3bd92f69cce195c3e491d40071b8d0b08
commit af4c58b3bd92f69cce195c3e491d40071b8d0b08
Author: Alexey Ozeritsky aozerit...@gmail.com
AuthorDate: Sat Aug 13 17:02:15 2011 +0400
Commit: Alexey Ozeritsky aozerit...@gmail.com
CommitDate: Sat Aug 13 17:03:58 2011 +0400

ACML-GPU supported

diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
index 4431778..7bad959 100644
--- a/Modules/FindBLAS.cmake
+++ b/Modules/FindBLAS.cmake
@@ -23,7 +23,7 @@
 ##
 ### List of vendors (BLA_VENDOR) valid in this module
 ##  Goto,ATLAS PhiPACK,CXML,DXML,SunPerf,SCSL,SGIMATH,IBMESSL,Intel10_32 
(intel mkl v10 32 bit),Intel10_64lp (intel mkl v10 64 bit,lp thread model, lp64 
model),
-##  Intel( older versions of mkl 32 and 64 bit), ACML,ACML_MP,Apple, NAS, 
Generic
+##  Intel( older versions of mkl 32 and 64 bit), ACML,ACML_MP,ACML_GPU,Apple, 
NAS, Generic
 # C/CXX should be enabled to use Intel mkl
 
 #=
@@ -57,7 +57,7 @@ else()
   endif(BLAS_FIND_REQUIRED)
 endif( )
 
-macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list _optional)
+macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list _thread)
 # This macro checks for the existence of the combination of fortran libraries
 # given by _list.  If the combination is found, this macro checks (using the
 # Check_Fortran_Function_Exists macro) whether can link against that library
@@ -69,8 +69,7 @@ macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags 
_list _optional)
 # N.B. _prefix is the prefix applied to the names of all cached variables that
 # are generated internally and marked advanced by this macro.
 
-list(GET _optional 0 _thread)
-list(GET _optional 1 _libdir)
+set(_libdir ${ARGN})
 
 set(_libraries_work TRUE)
 set(${LIBRARIES})
@@ -267,15 +266,24 @@ if (BLA_VENDOR STREQUAL IBMESSL OR BLA_VENDOR STREQUAL 
All)
 endif (BLA_VENDOR STREQUAL IBMESSL OR BLA_VENDOR STREQUAL All)
 
 #BLAS in acml library?
-if (BLA_VENDOR STREQUAL ACML OR BLA_VENDOR STREQUAL ACML_MP OR BLA_VENDOR 
STREQUAL All)
-# the patch from Chuck Atkins:
- if( ((_BLAS_VENDOR STREQUAL ACML) AND (NOT BLAS_ACML_LIB_DIRS)) OR
-((_BLAS_VENDOR STREQUAL ACML_MP) AND (NOT BLAS_ACML_MP_LIB_DIRS)) )
+if (BLA_VENDOR MATCHES ACML.* OR BLA_VENDOR STREQUAL All)
+ if( ((BLA_VENDOR STREQUAL ACML) AND (NOT BLAS_ACML_LIB_DIRS)) OR
+ ((BLA_VENDOR STREQUAL ACML_MP) AND (NOT BLAS_ACML_MP_LIB_DIRS)) OR
+ ((BLA_VENDOR STREQUAL ACML_GPU) AND (NOT BLAS_ACML_GPU_LIB_DIRS))
+   )
+   # try to find acml in standard paths
if( WIN32 )
 file( GLOB _ACML_ROOT C:/AMD/acml*/ACML-EULA.txt )
else()
 file( GLOB _ACML_ROOT /opt/acml*/ACML-EULA.txt )
endif()
+   if( 

[Cmake-commits] CMake branch, next, updated. v2.8.5-1564-gf9239a2

2011-08-15 Thread Stephen Kelly
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  f9239a25c33d6b099d706645ffa3661a922d57fb (commit)
   via  1ae3365e9f4126688d57137648e190ca5f4ef8dc (commit)
   via  f4264960551d088d3a0f1eea3049d2d8ecfd285b (commit)
   via  f84c7db5928dcb4a46c3f8d51d910e4ad4367113 (commit)
   via  9672b332b15a0ba66b929e28fdac2f5d854d9b99 (commit)
  from  a118650aaf509cdf44ded0405c22203f47422c49 (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=f9239a25c33d6b099d706645ffa3661a922d57fb
commit f9239a25c33d6b099d706645ffa3661a922d57fb
Merge: a118650 1ae3365
Author: Stephen Kelly steve...@gmail.com
AuthorDate: Mon Aug 15 19:24:43 2011 -0400
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Mon Aug 15 19:24:43 2011 -0400

Merge topic 'generate_export_header' into next

1ae3365 Exclude PGI from exports and deprecated.
f426496 Exclude cygwin from the hidden visibility feature.
f84c7db Don't enable deprecated on old GCC
9672b33 Don't enable deprecated on HP.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1ae3365e9f4126688d57137648e190ca5f4ef8dc
commit 1ae3365e9f4126688d57137648e190ca5f4ef8dc
Author: Stephen Kelly steve...@gmail.com
AuthorDate: Tue Aug 16 01:21:59 2011 +0200
Commit: Stephen Kelly steve...@gmail.com
CommitDate: Tue Aug 16 01:21:59 2011 +0200

Exclude PGI from exports and deprecated.

diff --git a/Modules/GenerateExportHeader.cmake 
b/Modules/GenerateExportHeader.cmake
index f73748c..7a4b6d3 100644
--- a/Modules/GenerateExportHeader.cmake
+++ b/Modules/GenerateExportHeader.cmake
@@ -149,7 +149,7 @@ macro(_test_compiler_hidden_visibility)
   # Exclude XL here because it misinterprets -fvisibility=hidden even though
   # the check_cxx_compiler_flag passes
   # http://www.cdash.org/CDash/testDetails.php?test=109109951build=1419259
-  if (NOT GCC_TOO_OLD AND NOT WIN32 AND NOT CYGWIN AND NOT 
${CMAKE_CXX_COMPILER_ID} MATCHES XL)
+  if (NOT GCC_TOO_OLD AND NOT WIN32 AND NOT CYGWIN AND NOT 
${CMAKE_CXX_COMPILER_ID} MATCHES XL AND NOT ${CMAKE_CXX_COMPILER_ID} 
MATCHES PGI)
 check_cxx_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY)
 check_cxx_compiler_flag(-fvisibility-inlines-hidden 
COMPILER_HAS_HIDDEN_INLINE_VISIBILITY)
 option(USE_COMPILER_HIDDEN_VISIBILITY Use HIDDEN visibility support if 
available. ON)
@@ -158,7 +158,7 @@ macro(_test_compiler_hidden_visibility)
 endmacro()
 
 macro(_test_compiler_has_deprecated)
-  if(${CMAKE_CXX_COMPILER_ID} MATCHES Borland OR ${CMAKE_CXX_COMPILER_ID} 
MATCHES HP OR GCC_TOO_OLD)
+  if(${CMAKE_CXX_COMPILER_ID} MATCHES Borland OR ${CMAKE_CXX_COMPILER_ID} 
MATCHES HP OR GCC_TOO_OLD OR ${CMAKE_CXX_COMPILER_ID} MATCHES PGI)
 set(COMPILER_HAS_DEPRECATED  CACHE INTERNAL Compiler support for a 
deprecated attribute)
   else()
 _check_cxx_compiler_attribute(__attribute__((__deprecated__)) 
COMPILER_HAS_DEPRECATED_ATTR)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f4264960551d088d3a0f1eea3049d2d8ecfd285b
commit f4264960551d088d3a0f1eea3049d2d8ecfd285b
Author: Stephen Kelly steve...@gmail.com
AuthorDate: Tue Aug 16 01:19:37 2011 +0200
Commit: Stephen Kelly steve...@gmail.com
CommitDate: Tue Aug 16 01:19:37 2011 +0200

Exclude cygwin from the hidden visibility feature.

diff --git a/Modules/GenerateExportHeader.cmake 
b/Modules/GenerateExportHeader.cmake
index f3a1836..f73748c 100644
--- a/Modules/GenerateExportHeader.cmake
+++ b/Modules/GenerateExportHeader.cmake
@@ -149,7 +149,7 @@ macro(_test_compiler_hidden_visibility)
   # Exclude XL here because it misinterprets -fvisibility=hidden even though
   # the check_cxx_compiler_flag passes
   # http://www.cdash.org/CDash/testDetails.php?test=109109951build=1419259
-  if (NOT GCC_TOO_OLD AND NOT WIN32 AND NOT ${CMAKE_CXX_COMPILER_ID} MATCHES 
XL)
+  if (NOT GCC_TOO_OLD AND NOT WIN32 AND NOT CYGWIN AND NOT 
${CMAKE_CXX_COMPILER_ID} MATCHES XL)
 check_cxx_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY)
 check_cxx_compiler_flag(-fvisibility-inlines-hidden 
COMPILER_HAS_HIDDEN_INLINE_VISIBILITY)
 option(USE_COMPILER_HIDDEN_VISIBILITY Use HIDDEN visibility support if 
available. ON)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f84c7db5928dcb4a46c3f8d51d910e4ad4367113
commit f84c7db5928dcb4a46c3f8d51d910e4ad4367113
Author: Stephen Kelly steve...@gmail.com
AuthorDate: Tue Aug 16 01:17:26 2011 +0200
Commit: Stephen Kelly steve...@gmail.com
CommitDate: Tue Aug 16 01:17:26 2011 +0200

Don't enable deprecated on old GCC

Hopefully a fix for