Re: [CMake] Possiblity to speedup the build by compiling multiple files in one compiler invocation

2011-04-27 Thread Verweij, Arjen
Is this of use to you?

http://www.gmixer.com/archives/46/comment-page-1#comment-320

Regards,
Arjen

From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of 
Martin Nielsen
Sent: dinsdag 26 april 2011 15:11
To: cmake@cmake.org
Subject: [CMake] Possiblity to speedup the build by compiling multiple files in 
one compiler invocation

Hi,

I have been asked to look into the possibilities of compiling multiple files in 
one invocation of the compiler like:

armcc.exe ... file1.c file2.c ... fileN.c -o mylib.lib 

The cross compiler we are using requires a license in order to compile the 
file. It is a network floating license mechanism and the majority of the time 
it take to build the code is spent on acquiring the license. Parallel build is 
sadly not an option either since it just requests multiple licenses and we 
quickly run out.

I was wondering if CMake could be directed to somehow do this? or it would 
break some dependency between the source files and the generation of the 
library.

I suspect it isn't possible but would like to confirm this or explore other 
ideas on how to get around this problem.

Med venlig hilsen / Best Regards

Martin Nielsen


Member of the CSR plc group of companies. CSR plc registered in England and 
Wales, registered number 4187346, registered office Churchill House, Cambridge 
Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom 
___
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] Replacing compiler flags for certain project subdirectories

2011-03-31 Thread Verweij, Arjen
Tim,

I don't think cmake can facilitate this out of the box (to my knowledge). The 
problem is that some compilers and fortran code just don't mix with +O3 (blas, 
lapack).

We have worked around it by reimplementing a mechanism from our old build 
system, where optimization for fortran c and cxx were parameterized, e.g. 
MDFC_OPT_LVLX (0-3 (up to 7 for Altix I think)). We have a wrapper function 
that sets COMPILE_FLAGS to this value with set_source_files_properties().

The catch is that at top level you have to strip CMAKE_LANG_FLAGS from any 
optimization instruction:

HPUX-IA64: set (CMAKE_C_LINK_FLAGS +DSitanium2 +DD64 +DO11.23 -Aa -Ae 
-D_HPUX_SOURCE +Z)

Note: you may also have to redefine the default link flags.

Hope this helps,
Arjen

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Whitcomb, Mr. Tim
Sent: woensdag 30 maart 2011 20:00
To: 'cmake@cmake.org'
Subject: Re: [CMake] Replacing compiler flags for certain project
subdirectories

Shortening to reduce wall-of-text:

I have a Fortran project with a top-level CMakeLists.txt file with 47
add_subdirectory calls.  Three of the subdirectories require a different
set of preprocessor definitions and compiler flags than the other 47.  I
can add the preprocessor definitions, but am having trouble with the
compiler flags.  I need to have a completely different set in those
subdirectories, so COMPILE_FLAGS target property won't work as it
augments what's already there.

How can I replace (not extend) the compiler flags for these few
subdirectories?

Tim

 -Original Message-
 From: cmake-boun...@cmake.org
 [mailto:cmake-boun...@cmake.org] On Behalf Of Whitcomb, Mr. Tim
 Sent: Friday, March 25, 2011 3:18 PM
 To: 'cmake@cmake.org'
 Subject: [CMake] Replacing compiler flags for certain project
 subdirectories

 I'm in the process of adding Cmake-build capability to a
 Fortran project that currently follows a traditional
 recursive-make build structure.  I've converted all the
 makefiles to CMakeLists.txt files and can now produce all the
 target libraries and executables with their dependencies
 correctly recognized.  These dependencies have made a huge
 difference in allowing us to perform parallel builds and have
 the project ready to go *much* faster than before.  I have a
 top-level CMakeLists.txt file that contains a few library
 searches (e.g. LAPACK, BLAS) and then an add_subdirectory
 call for each subdirectory in the project.  Each subdirectory
 corresponds to a library and/or an executable.

 Now that the listing files contain all the sources files they
 need, my current task is to go through and set the proper
 compiler/preprocessor flags to match the original makefiles.
 We have several directories in our source tree that are
 auxiliary libraries that we store in our Subversion
 repository and build as part of our regular build process.
 The libraries that are built in these directories are
 compiled with different compiler flags and different
 preprocessor definitions than the rest of the project.  I've
 been able to handle the preprocessor definitions by using
 add_definitions in the CMakeLists.txt files in the
 lower-level directories.  I see based on reading through some
 past threads (including the recent Different CMAKE_CXX_FLAGS
 for different executables) on this list and on some
 StackOverflow questions that the COMPILE_FLAGS target
 property is very close to what I need (and actually *was*
 what I needed in several cases) but only appends flags to
 those currently  in use.  What I need is to be able to define
 a new set of compile flags (i.e. forget everything you were
 using before and use THIS set in this directory).

 I've started going through the documentation for Building
 External Projects[*] but the first line states that [a]n
 external project is one that you can get the source code
 for, but does not readily build with a simple
 ADD_SUBDIRECTORY call in your CMakeLists.txt file.  This
 feels like it's designed to solve a slightly different
 problem than what I'm trying to do - I have an
 add_subdirectory call in my CMakeLists.txt file - is the
 proper fix for this issue to make the pieces that require
 different flags external projects?  Will making some of these
 libraries external projects mess with the dependency calculation?

 I'm just getting started and trying to wrap my head around
 the options available.  What is the standard way of dealing
 with this issue?  Is there anything I'm missing?  Thank you
 for your assistance!

 Tim
 [w]

 [*]
 http://www.kitware.com/products/html/BuildingExternalProjectsW
 ithCMake2.8.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:

Re: [CMake] Specify an alternate C++ compiler for some source files

2011-03-30 Thread Verweij, Arjen
Since our default compilers are not gcc (icc, pgcc, cc, xlc_r etc) we've 
introduced FLEXLM_C_COMPILER and friends to be able to compile this from a 
single source tree.

But perhaps it would be cleaner to off-load it with ExternalProject_Add().

Seriously, how often do you want to compile LAPACK, BLAS, MPI, FLEXlm 
yourself...

Regards,
Arjen

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Michael Wild
Sent: woensdag 30 maart 2011 14:11
To: cmake@cmake.org
Subject: Re: [CMake] Specify an alternate C++ compiler for some source
files

On 03/30/2011 01:42 PM, Marc Tajchman wrote:
 Hi,

 How to specify different compilers for different source files in
 CMakeLists.txt, e.g. if

 test1.cxx must be compiled with g++
 test2.cxx must be compiled with mpicxx (mpi compiler)

 I tried

 add_executable(test1.exe test1.cxx)
 set_source_files_properties(test2.cxx PROPERTIES CMAKE_CXX_COMPILER
 ${MPI_COMPILER})
 add_executable(test2.exe test2.cxx)

 but it didn't work (i.e. g++ is still used for test2.cxx - test2.o).

 Any help appreciated.

 Best Regards,
 Marc


CMake can't do that. But if you need MPI, use

find_package(MPI REQUIRED)
include_directories(${MPI_INCLUDE_PATH})
add_executable(test1 test1.cxx)
add_executable(test2 test2.cxx)
target_link_libraries(test2 ${MPI_LIBRARIES})
set_target_properties(test2 PROPERTIES
  COMPILE_FLAGS ${MPI_COMPILE_FLAGS}
  LINK_FLAGS ${MPI_LINK_FLAGS})


HTH

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


Re: [CMake] Unify entire tree into a single static library?

2011-02-22 Thread Verweij, Arjen
Doug,

There is no convenient way to do this in Cmake you have you program around this 
issue with a GLOBAL  list of source files.

Michael Wild has offered a nice example at 
http://www.mail-archive.com/cmake@cmake.org/msg27780.html

Hopefully this is useful to you as well.

Regards,
Arjen

From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of Doug
Sent: woensdag 23 februari 2011 6:48
To: cmake@cmake.org
Subject: [CMake] Unify entire tree into a single static library?

Hi,

If this has been answered somewhere already in the WIKI or something, please 
just link me up; it seems like a simple question, but I can't figure it out.

So, basically I have my code split into a series of sub-directories:

project/
project/utils/
project/common/
project/desktop/
etc.

Each sub directory currently has it's own CMakeLists.txt, as follows:

file(GLOB SOURCE *.c)
add_library (shared ${SOURCE})

The parent CMakeLists.txt file define these as dependencies:

# Shared code
include_directories(${PROJECT_SOURCE_DIR}/shared)
add_subdirectory(shared)
set (EXTRA_LIBS ${EXTRA_LIBS} shared)

# Utility libraries
include_directories(${PROJECT_SOURCE_DIR}/utils)
add_subdirectory(utils)
set (EXTRA_LIBS ${EXTRA_LIBS} utils)

...

# Source files~
file(GLOB sources src/*.c)
add_library (project ${sources})
target_link_libraries (project ${EXTRA_LIBS})

This builds fine. However, it generates a library.a file for each directory, eg.

per-ms006:build douglasl$ du -a |grep \.a
./desktop/libdesktop.a
./libcommon.a
./shared/libshared.a
./utils/libutils.a

The problem is that if I want to depend on this with an external project, I can 
do so via this:

# Add lib
include_directories(/path/to/project/include/)
link_directories(/path/to/project/build/)
set(EXTRA_LIBS ${EXTRA_LIBS} project)

...but... obviously this does not link any of the other sub libraries like 
-lutils -lcommon -ldesktop, so my build fails with a pile of undefined symbol 
errors. 

So, what's the way to solve this?

Can I either:

1) Somehow depend on an external project directory with some kind of 
add_subdirectory() directive?

2) Somehow force cmake to combine all the symbols into a single static library 
for the project, rather than several individual ones?

(The only suggestions I've seen so far are (2), where you define a single 
CMakeLists,txt and list _all_ source files in all directories in it. This is a 
silly solution, or (2) where you manually uncompress the .a files and recombine 
all the .o files into a single .a file. This is also just ridiculous. Surely 
this is a problem that comes up a lot...?)

Cheers,
Doug.


___
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] Expected boost path structure.

2011-02-17 Thread Verweij, Arjen
Just to make sure:

set BOOST_ROOT=X:\32bit\VC.90\Libraries\boost-1.45.0

Won't work? Or setting it to this value in the Computer  Properties  
Environment variables section?

I thought cmake worked fine with the path separator that is native to the OS. 
Would be strange if it didn't.

Arjen

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of David Cole
Sent: donderdag 17 februari 2011 17:42
To: John Drescher
Cc: CMake mailing list
Subject: Re: [CMake] Expected boost path structure.

On Thu, Feb 17, 2011 at 11:37 AM, John Drescher dresche...@gmail.com
wrote:
 According to FindBoost.cmake:

  if (NOT BOOST_ROOT AND NOT $ENV{BOOST_ROOT} STREQUAL )
    set(BOOST_ROOT $ENV{BOOST_ROOT})
  endif()

 So, it should work with an ENV var, too. But the way this is phrased,
 it would have to have forward slashes / and no spaces in it for it
 to work.


 I launched cmake-gui from a Visual Studio 2008 32 bit command prompt
 with the BOOST_ROOT environment variable set in that command prompt.

 X:\Other\Libraries\boost_1_45_0set BOOST_ROOT
 BOOST_ROOT=X:/32bit/VC.90/Libraries/boost-1.45.0

 Is there a way to have cmake-gui show its environment variables?

 John


 --
 John M. Drescher


Take away the quotes in the env var. They are actually embedded in the
env var, so they'll end up in the CMake variable, too. If you print
out the CMake variable that gets set based on that env value, then it
will have double quotes in it.
___
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] feed parsed information from source files into compile process

2011-02-10 Thread Verweij, Arjen
Thanks Tyler,

-Original Message-
From: Tyler Roscoe [mailto:ty...@cryptio.net]

You can't use add_custom_command() to drive this because the results of
any custom commands will only be available at build time. You need stuff
to happen at CMake configure time.

I noticed. Add_custom_target(foo ALL ... ) results are only processed at make+1 
and not immediately :(

Hence, I would use execute_process() to run your python script at
configure time. It would deposit its results into a file, which you
could then include() (or file(READ ...)).

While this does work, it will only function properly if cmake needs to run. If 
for whatever reason (say a -O2/-O3 omp compiler bug in xlf_r ;) ) you change 
the in-file compiler flags they will not be picked up until you run cmake.

I'm gonna try a few things, but I'm not too hopeful :P

Regards,
Arjen
___
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] feed parsed information from source files into compile process

2011-02-09 Thread Verweij, Arjen
Hi,

I'm looking for a way to parse information from source files and feed the 
outcome as input to the build process.

In more detail, I have Fortran files that contain information about what 
optimization flags should be fed to the compiler.

Currently there is a python script that does preprocessing of all source, 
stores information in override.cmake files using set_source_file_properties(). 
This works fine, but makes maintaining source more error prone than it was. For 
instance a developer might use the code for an FE element, use it as the basis 
for a collapsed version and inherit specific optimizations which are now 
ignored.

I have looked at a way to chain this step using add_custom_command(), but I see 
no possibility to tell the generator about some variable an external program 
will fill in during the build phase.

Do Fortran developers have to learn to live with this, or is there a way to 
sneak information from source file into the makefile generation?

Thanks,
Arjen
___
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 2.8.3 forces -rdynamic for pf90 in pure fortran projects

2010-11-23 Thread Verweij, Arjen
Hi Brad,

Please try the patch below.

It gets rid of -rdynamic for pure F90. I will try in a C/C++/F77/F90 project 
soonish (hopefully today). I didn't check if other flags get cleared as well.

Thanks,
Arjen

diff --git a/Modules/Platform/Linux-PGI.cmake b/Modules/Platform/Linux-
PGI.cmake
index ef06acd..43e0232 100644
--- a/Modules/Platform/Linux-PGI.cmake
+++ b/Modules/Platform/Linux-PGI.cmake
@@ -22,4 +22,5 @@ macro(__linux_compiler_pgi lang)
   # Shared library compile and link flags.
   set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS -fPIC)
   set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS -shared)
+  set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS )
 endmacro()
___
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] cmake 2.8.3 forces -rdynamic for pf90 in pure fortran projects

2010-11-22 Thread Verweij, Arjen
Hi,

-rdynamic is used for linking with pgf90 even though it is not supported. The 
flag is imported from Linux-GNU.cmake and I guess it is included because cmake 
(2.8.3) checks for C and C++ compilers by default.

http://www.vtk.org/Bug/view.php?id=9985 talks about this bug, but I'm unsure 
what the final conclusion is and if the bug is considered fixed. Even though 
this is a Fortran test, I can imagine it will break linking multi-language code 
as well, if you mix PGI (pgf90) with GNU (gcc/g++) and end up with -rdynamic 
because of it.

Thanks,
Arjen
___
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] Converting a large C++-Project to CMake

2010-11-01 Thread Verweij, Arjen
Benjamin,


 If you haven't already, you might want to take a lot at JOM, which is
 essentially parallel nmake: http://qt.gitorious.org/qt-labs/jom. JOM
 is supported by CMake.

Thank you Pedro. One of our developers already tried to plug jom into
our current build system, but some trouble with forward slashes in path
names occurred. I'll give it a shot with CMake!

Make sure you take 0.9.4 or better, I haven't had much success with older 
versions, although I didn't try every version. This was the newest at the time 
and it works for me (tm).

Arjen
___
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] cmake 2.8.2 doesn't build on suse 9.3

2010-10-05 Thread Verweij, Arjen
Hi,

For some reason bootstrap on a plain SuSE 9.3 fails to find sys/wait.h.

Manually defining HAVE_SYS_WAIT_H to 1 in config.h allows cmake and friends to 
be built.

Regards,
Arjen

-rw-r--r--  1 root root 6620 2005-06-11 00:58 /usr/include/sys/wait.h

-- Looking for include files HAVE_SYS_WAIT_H
-- Looking for include files HAVE_SYS_WAIT_H - not found.

___
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] Merge two static libraries

2010-10-05 Thread Verweij, Arjen
Hi,

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Marcel Loose

The downside to this solution is that you have duplicates of the object
files that are part of common, but that's the price you'll have to pay
if you want to have just one static library.

HTH,
Marcel Loose.


I think at least for Linux and Unices this gets solved when linking the final 
executable. Stuff in an archive (static library for you AIX users) that is not 
referenced evaporates.

It's also need for fast linking. You just create a link line that creates an 
executable based on one or more objects files in front of an archive. The 
symbols in the object file take precedence, which can make incremental builds 
really fast. This last bit is where cmake is much slower than my original build 
system, but arguably more safe.

Regards,
Arjen
___
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 2.8.2 doesn't build on suse 9.3

2010-10-05 Thread Verweij, Arjen
Hi Brad,

Yes:

Determining if files 
sys/types.h;ctype.h;dlfcn.h;errno.h;fcntl.h;grp.h;inttypes.h;langinfo.h;limits.h;linux/fs.h;locale.h;memory.h;paths.h;poll.h;pwd.h;regex.h;signal.h;stdarg.h;stdint.h;stdlib.h;string.h;strings.h;sys/ioctl.h;sys/param.h;sys/poll.h;sys/select.h;sys/stat.h;sys/time.h;sys/wait.h
 exist failed with the following output:
Change Dir: /usr2/people/verweija/cmake/cmake-2.8.2/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/gmake cmTryCompileExec/fast
gmake -f CMakeFiles/cmTryCompileExec.dir/build.make 
CMakeFiles/cmTryCompileExec.dir/build
gmake[1]: Entering directory 
`/usr2/people/verweija/cmake/cmake-2.8.2/CMakeFiles/CMakeTmp'
/usr2/people/verweija/cmake/cmake-2.8.2/Bootstrap.cmk/cmake -E 
cmake_progress_report 
/usr2/people/verweija/cmake/cmake-2.8.2/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec.dir/CheckIncludeFiles.c.o
/usr/local/bin/cc-o CMakeFiles/cmTryCompileExec.dir/CheckIncludeFiles.c.o   
-c 
/usr2/people/verweija/cmake/cmake-2.8.2/CMakeFiles/CMakeTmp/CheckIncludeFiles.c
In file included from 
/usr2/people/verweija/cmake/cmake-2.8.2/CMakeFiles/CMakeTmp/CheckIncludeFiles.c:30:
/usr/include/sys/wait.h:103: error: syntax error before numeric constant
gmake[1]: *** [CMakeFiles/cmTryCompileExec.dir/CheckIncludeFiles.c.o] Error 1
gmake[1]: Leaving directory 
`/usr2/people/verweija/cmake/cmake-2.8.2/CMakeFiles/CMakeTmp'
gmake: *** [cmTryCompileExec/fast] Error 2

gcc version:
/usr/local/bin/cc -v
Reading specs from /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/specs
Configured with: ../configure --enable-threads=posix --prefix=/usr 
--with-local-prefix=/usr/local --infodir=/usr/share/info 
--mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada 
--disable-checking --libdir=/usr/lib64 --enable-libgcj --with-slibdir=/lib64 
--with-system-zlib --enable-shared --enable-__cxa_atexit x86_64-suse-linux
Thread model: posix
gcc version 3.3.5 20050117 (prerelease) (SUSE Linux)

Attached wait.h.

Regards,
Arjen

-Original Message-
From: Brad King [mailto:brad.k...@kitware.com]
Sent: dinsdag 5 oktober 2010 18:59
To: Verweij, Arjen
Cc: cmake@cmake.org
Subject: Re: [CMake] cmake 2.8.2 doesn't build on suse 9.3

On 10/05/2010 08:34 AM, Verweij, Arjen wrote:
 For some reason bootstrap on a plain SuSE 9.3 fails to find
sys/wait.h.

 Manually defining HAVE_SYS_WAIT_H to 1 in config.h allows cmake and
friends to be built.

 -rw-r--r--  1 root root 6620 2005-06-11 00:58 /usr/include/sys/wait.h

 -- Looking for include files HAVE_SYS_WAIT_H
 -- Looking for include files HAVE_SYS_WAIT_H - not found.

It looks like the bootstrap CMake builds but fails to configure the
full build.  Does information about this check appear in the
CMakeFiles/CMakeError.log file?

-Brad
/* Copyright (C) 1991-1994,1996-2001,2003,2004 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, write to the Free
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   02111-1307 USA.  */

/*
 *  POSIX Standard: 3.2.1 Wait for Process Termination  sys/wait.h
 */

#ifndef _SYS_WAIT_H
#define _SYS_WAIT_H 1

#include features.h

__BEGIN_DECLS

#include signal.h
#include sys/resource.h

/* These macros could also be defined in stdlib.h.  */
#if !defined _STDLIB_H || !defined __USE_XOPEN
/* This will define the `W*' macros for the flag
   bits to `waitpid', `wait3', and `wait4'.  */
# include bits/waitflags.h

# ifdef __USE_BSD

/* Lots of hair to allow traditional BSD use of `union wait'
   as well as POSIX.1 use of `int' for the status word.  */

#  if defined __GNUC__  !defined __cplusplus
#   define __WAIT_INT(status) \
  (__extension__ ({ union { __typeof(status) __in; int __i; } __u;\
__u.__in = (status); __u.__i; }))
#  else
#   define __WAIT_INT(status)   (*(int *) (status))
#  endif

/* This is the type of the argument to `wait'.  The funky union
   causes redeclarations with ether `int *' or `union wait *' to be
   allowed without complaint.  __WAIT_STATUS_DEFN is the type used in
   the actual function definitions.  */

#  if !defined __GNUC__ || __GNUC__  2 || defined __cplusplus
#   define __WAIT_STATUSvoid *
#   define __WAIT_STATUS_DEFN   void *
#  else
/* This works in GCC 2.6.1 and later

Re: [CMake] How to invoke 64 bit cmd.exe from cmake script onWindows 7 (x64).

2010-08-24 Thread Verweij, Arjen
I would be interested to learn how. Because of similar issues we got rid of a 
shell script on Win64 because UnxUtil zsh.exe doesn't run from the 64bit 
cmd.exe.

Also, when in a 64bit VS shell, I now need to run the 32bit nmake.exe because 
otherwise my 32bit flex.exe will crash. I have tried directly, with bat files, 
cmd /c etc.

Regards,
Arjen

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Rolf Eike Beer
Sent: maandag 23 augustus 2010 21:57
To: cmake@cmake.org
Subject: Re: [CMake] How to invoke 64 bit cmd.exe from cmake script
onWindows 7 (x64).

Am Monday 23 August 2010 schrieb Eric Noulard:

 I'm not a windows expert but since execute_process somehow
 Fork/CreateThread/CreateProcess from 32 bits CMake I doubt that this
 32bits app may fork a 64bits one.

You can start a 64 bit process from a 32 one as you can do the other way
round. You just can't use libraries of different pointer length without
magic.

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] Setting CMAKE_CXX_FLAGS..., CMAKE_C_FLAGS... and CMAKE_C_STANDARD_LIBRARIES_INIT and friends on a per target basis

2010-08-20 Thread Verweij, Arjen
I can't say I share this experience. We use this mechanism to substitute 
standard flags with less or more optimization and/or other options. Usually 
-O3 instead of -O2, and I don't get them both on the commandline.

Arjen

From: Brian Davis [mailto:bitmi...@gmail.com] 

set_source_files_properties(${CMAKE_BINARY_DIR}/path/to/file.f PROPERTIES 
GENERATED TRUE COMPILE_FLAGS ${FFLAG_OPT})
 
COMPILE flags only appends to thoes already set CMAKE_... vars.  I need a way 
to override all the other vars on a per target basis.


 

___
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] Setting CMAKE_CXX_FLAGS..., CMAKE_C_FLAGS... and CMAKE_C_STANDARD_LIBRARIES_INIT and friends on a per target basis

2010-08-19 Thread Verweij, Arjen
Hi Brian,

We override the standard CMAKE_LANG_FLAGS (C CXX Fortran) and use it as a 
baseline. Then, for individual source files it is possible to override them in 
a separate file using:

set_source_files_properties(${CMAKE_BINARY_DIR}/path/to/file.f PROPERTIES 
GENERATED TRUE COMPILE_FLAGS ${FFLAG_OPT})

These override files are included OPTIONALly and the directives executed when 
applicable.

Regards,
Arjen

From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of 
Brian Davis
Sent: woensdag 18 augustus 2010 22:48
To: cmake Mailing List
Subject: [CMake] Setting CMAKE_CXX_FLAGS..., CMAKE_C_FLAGS... and 
CMAKE_C_STANDARD_LIBRARIES_INIT and friends on a per target basis

CMAKE_CXX_FLAGS..., CMAKE_C_FLAGS... and CMAKE_C_STANDARD_LIBRARIES_INIT and 
friends are seemingly global variables.  Is there a way to override (all of) 
these on a per target basis?  A method which is not tied to the directory 
(properties). One that does not simply append such as COMPILE_FLAGS, but blasts 
away and makes it what I specify? Basically all the goop in Windows-icl.cmake, 
Windows-cl.cmake, etc.  Possibly involving set_target_properties?
___
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] 64 bit windows: rsp file not employed in build.make

2010-08-10 Thread Verweij, Arjen
Hi,

The objects1.rsp file is generated by CMake during configuration.  The
start/end temp file syntax tells NMake to use response files at build
time.

Why is this scheme only used for shared libs and not static libs? For static 
libs it works automagically somehow.

The link rule uses objects1.rsp with cl but not icl because cl.cmake
has:

  SET(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1)
  SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1)

OK. But in cl.cmake these variables are only set after the definition of 
CMAKE_C_CREATE_STATIC_LIBRARY and CMAKE_CXX_CREATE_STATIC_LIBRARY (i.e. for 
shared libs), so I didn't think of it.

These should probably be added to Windows-icl.cmake too.  We already
have

  SET(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1)

in Windows-ifort.cmake.

Indeed for pure Fortran it works. I can happily link 40k files into a single 
lib. I have added suggested settings locally to my Windows-icl.cmake and I can 
build a lib from a large number of objects now.

Please find a patch attached. It has the definitions in the top like 
Windows-ifort.cmake (as opposed to cl.cmake)

NOTE: this does not include the change from /INCREMENTAL:YES to /INCREMENTAL:NO 
that stops the ICE with Intel C/C++ and Intel Fortran 9.1. I still use that 
locally, but after reading Bill's comments it seems the wrong way to fix it.

Thanks,
Arjen


Windows-icl.cmake.patch
Description: Windows-icl.cmake.patch
___
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] ifort 9.1 unable to compile a simple test program

2010-08-09 Thread Verweij, Arjen
Hi,

Interesting.  It works for ifort 11.1.  So does

  ifort /incremental:yes myfile.f

ICE for any file with ifort 9.1?


Hrm, no not really :|

Not too sure why this is breaking. Is this technically an ICE? I see ifort 
reporting it, but it occurs when linking and both ifort and xilink call link of 
visual studio to link stuff? Maybe I can try other ways of linking later on 
(i.e. the way cmake attempts in the trycompile step), access to the machine has 
been suspended for a bit pending an upgrade. 

sq.f:
  function my0(x)
  real x
  my0 = x**2
  WRITE (*, *) my0
  return
  end

main.f:

*
C Hello World in Fortran 77
C (lines must be 6 characters indented)
*
  PROGRAM HELLOW
  real myvar
  WRITE(UNIT=*, FMT=*) 'Hello World'
  myvar = my0(2.)
  END


Z:\testbinifort /c sq.f
Intel(R) Fortran Compiler for Intel(R) EM64T-based applications, Version 9.1
Build 20060324
Copyright (C) 1985-2006 Intel Corporation.  All rights reserved.


Z:\testbinifort /c main.f
Intel(R) Fortran Compiler for Intel(R) EM64T-based applications, Version 9.1
Build 20060324
Copyright (C) 1985-2006 Intel Corporation.  All rights reserved.


Z:\testbinlink /incremental:yes main.obj sq.obj
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.


Z:\testbinmain.exe
 Hello World
   4

Regards,
Arjen
___
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] 64 bit windows: rsp file not employed in build.make

2010-08-09 Thread Verweij, Arjen
Hi,

I'm investigating a problem where on 64-bit Windows the generated build.make 
(NMake or NMake JOM) does not make use of response files. I have tried 
transplanting the settings file for the 32 bit platform and minimizing 
differences, but still I cannot get it to use rsp files. This is a problem 
because I can't create one of the static libraries, since the command line is 
too long. Except for the missing rsp mechanism, I'm also unsure why in one case 
the linking is done through link.exe and by lib in the other.

I've made sure to:

- use a fresh copy of cmake 2.8.2 on both machines
- not to mess with CMAKE_START_TEMP_FILE / CMAKE_END_TEMP_FILE

Is there a way to see how cmake arrives at a generated rule, perhaps as it is 
generating? Of course if you know anything that might cause this behavior I 
would be keen to learn it.

Thanks,
Arjen

Generated on win32 (VS2003 SE):

@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold 
Linking CXX static library \win32p_cmake\lib\ulib\dom.lib
cd E:\build\src\ulib\dom
$(CMAKE_COMMAND) -P CMakeFiles\dom.dir\cmake_clean_target.cmake
cd E:\build
cd E:\build\src\ulib\dom
E:\PROGRA~1\MICROS~1.NET\Vc7\bin\link.exe /lib   
/out:\win32p_cmake\lib\ulib\dom.lib @CMakeFiles\dom.dir\objects1.rsp 
cd E:\build

Generated on win64 (Intel C/C++ 9.1, VS2005 SE):

@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold 
Linking CXX static library \em64t-win_cmake\lib\ulib\dom.lib
cd E:\build\src\ulib\dom
$(CMAKE_COMMAND) -P CMakeFiles\dom.dir\cmake_clean_target.cmake
cd E:\build
cd E:\build\src\ulib\dom
lib   /out:\em64t-win_cmake\lib\ulib\dom.lib $(dom_OBJECTS) 
$(dom_EXTERNAL_OBJECTS) 
cd E:\build
























___
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] comments wrong in Windows-ifort.cmake

2010-08-09 Thread Verweij, Arjen
Patch attached :P

Arjen


Windows-ifort.cmake.patch
Description: Windows-ifort.cmake.patch
___
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] ifort 9.1 unable to compile a simple test program

2010-08-09 Thread Verweij, Arjen
Brad,

I have access to the machine again. I've tried another approach. What do you 
make of this? I'm sure you know what cmake -E vs_link_exe is supposed to do. :)

The first works, the second does, even with /INCREMENTAL:YES

Regards,
Arjen

ACCORDING TO build.make:

E:\trycompile\CMakeFiles\CMakeTmpE:\cmake28\bin\cmake.exe -E vs_link_exe 
E:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\ifort.e
xe /nologo CMakeFiles/cmTryCompileExec.dir/testFortranCompiler.f.obj /W1 
/nologo /fpp /libs:dll /threads   /debug:full /dbglibs /F
ecmTryCompileExec.exe -link /implib:cmTryCompileExec.lib   /INCREMENTAL:YES 
/debug /subsystem:console  user32.lib
backend signals

Severe: **Internal compiler error: internal abort** Please report this error 
along with the circumstances in which it occurred in
a Software Problem Report.  Note: File and line given may not be explicit cause 
of this error.

ifort: error: problem during multi-file optimization compilation (code 3)
LINK Pass 1 failed. with 3

STRIPPED -- E:\trycompile\CMakeFiles\CMakeTmpE:\cmake28\bin\cmake.exe -E 
vs_link_exe

E:\trycompile\CMakeFiles\CMakeTmpE:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\ifort.exe
 /nologo CMakeFiles/cmTryCompileExec.d
ir/testFortranCompiler.f.obj /W1 /nologo /fpp /libs:dll /threads   /debug:full 
/dbglibs /FecmTryCompileExec.exe -link /implib:cmTr
yCompileExec.lib   /INCREMENTAL:YES /debug /subsystem:console  user32.lib

E:\trycompile\CMakeFiles\CMakeTmpcmTryCompileExec.exe
 Hello


-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Verweij, Arjen
Sent: maandag 9 augustus 2010 16:15
To: Brad King
Cc: cmake@cmake.org
Subject: Re: [CMake] ifort 9.1 unable to compile a simple test program

Hi,

Interesting.  It works for ifort 11.1.  So does

  ifort /incremental:yes myfile.f

ICE for any file with ifort 9.1?


Hrm, no not really :|

Not too sure why this is breaking. Is this technically an ICE? I see
ifort reporting it, but it occurs when linking and both ifort and xilink
call link of visual studio to link stuff? Maybe I can try other ways of
linking later on (i.e. the way cmake attempts in the trycompile step),
access to the machine has been suspended for a bit pending an upgrade.

sq.f:
  function my0(x)
  real x
  my0 = x**2
  WRITE (*, *) my0
  return
  end

main.f:

*
C Hello World in Fortran 77
C (lines must be 6 characters indented)
*
  PROGRAM HELLOW
  real myvar
  WRITE(UNIT=*, FMT=*) 'Hello World'
  myvar = my0(2.)
  END


Z:\testbinifort /c sq.f
Intel(R) Fortran Compiler for Intel(R) EM64T-based applications, Version
9.1Build 20060324
Copyright (C) 1985-2006 Intel Corporation.  All rights reserved.


Z:\testbinifort /c main.f
Intel(R) Fortran Compiler for Intel(R) EM64T-based applications, Version
9.1Build 20060324
Copyright (C) 1985-2006 Intel Corporation.  All rights reserved.


Z:\testbinlink /incremental:yes main.obj sq.obj
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.


Z:\testbinmain.exe
 Hello World
   4

Regards,
Arjen
___
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] 64 bit windows: rsp file not employed in build.make

2010-08-09 Thread Verweij, Arjen
Hi Bill,

 I'm also unsure why in one case the linking is done through link.exe and by
 lib in the other.


One is using visual studio, and one is using the intel compiler.  They
have different files in the Platform directory.  That is why they can be
different.  See Windows-icl.cmake.

Thanks, that was silly to overlook.

Both link rules for static libraries however do not contain 
${CMAKE_START_TEMP_FILE} or ${CMAKE_END_TEMP_FILE} yet one platform I end up 
with objects1.rsp but on the other the lists of objects are passed as arguments 
to lib. Is there some implicit rule for static libraries when using cl.exe?

Regards,
Arjen

cl.cmake:

# create a C++ static library
SET(CMAKE_CXX_CREATE_STATIC_LIBRARY  CMAKE_LINKER /lib ${CMAKE_CL_NOLOGO} 
LINK_FLAGS /out:TARGET OBJECTS )

Windows-icl.cmake:

# create a C++ static library
SET(CMAKE_CXX_CREATE_STATIC_LIBRARY  lib ${CMAKE_CL_NOLOGO} LINK_FLAGS 
/out:TARGET OBJECTS )




___
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] ifort 9.1 unable to compile a simple test program

2010-08-07 Thread Verweij, Arjen
Hi Brad,

Apparently it breaks because of /INCREMENTAL:YES --

E:\build\CMakeFiles\CMakeTmpE:\cmake28\bin\cmake.exe -E vs_link_exe 
E:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\if
ort.exe  /nologo @CMakeFiles\cmTryCompileExec.dir\objects1.rsp /W1 /nologo /fpp 
/libs:dll /threads   /debug:full /dbglib
s /FecmTryCompileExec.exe -link /implib:cmTryCompileExec.lib   /INCREMENTAL:YES 
/debug /subsystem:console  user32.lib
backend signals

Severe: **Internal compiler error: internal abort** Please report this error 
along with the circumstances in which it oc
curred in a Software Problem Report.  Note: File and line given may not be 
explicit cause of this error.

ifort: error: problem during multi-file optimization compilation (code 3)
LINK Pass 1 failed. with 3

/INCREMENTAL:NO --

E:\build\CMakeFiles\CMakeTmpE:\cmake28\bin\cmake.exe -E vs_link_exe 
E:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\if
ort.exe  /nologo @CMakeFiles\cmTryCompileExec.dir\objects1.rsp /W1 /nologo /fpp 
/libs:dll /threads   /debug:full /dbglib
s /FecmTryCompileExec.exe -link /implib:cmTryCompileExec.lib   /INCREMENTAL:NO 
/debug /subsystem:console  user32.lib

E:\build\CMakeFiles\CMakeTmpcmTryCompileExec.exe
 Hello

Can I just turn this off in Windows-ifort.cmake or is this symptomatic of 
another problem?

Thanks,
Arjen 

-Original Message-
From: Brad King [mailto:brad.k...@kitware.com]
Sent: vrijdag 6 augustus 2010 22:28
To: Verweij, Arjen
Cc: cmake@cmake.org
Subject: Re: [CMake] ifort 9.1 unable to compile a simple test program

On 08/06/2010 04:22 PM, Verweij, Arjen wrote:
 I did it is below the cmake error in the previous email. No error just
a prompt
  And no noticeable difference to me.

Your previous message did

E:\cmake28\bin\cmake.exe -E vs_link_exe
 E:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\ifort.exe /nologo
 @CMakeFiles\cmTryCompileExec.dir\objects1.rsp
 @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nm1395.tmp

The @...tmp needs to be replaced with the rest of the command from
build.make.

-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


[CMake] ifort 9.1 unable to compile a simple test program

2010-08-06 Thread Verweij, Arjen
Hi,

Ifort 9.1 is unable to compile a simple test program on WinXP 64 bit with cmake 
2.8.2.

I can execute the linkline manually and it seems to link fine.

How can I debug what's going on?

Thanks,
Arjen

E:\buildcmake Z:\f90example -G NMake Makefiles --debug-trycompile
debug trycompile on
-- The C compiler identification is MSVC
-- The CXX compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1400
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check for working C compiler: E:/Program Files (x86)/Microsoft Visual Studio
8/VC/bin/cl.exe
-- Check for working C compiler: E:/Program Files (x86)/Microsoft Visual Studio
8/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: E:/Program Files (x86)/Microsoft Visual Studi
o 8/VC/bin/cl.exe
-- Check for working CXX compiler: E:/Program Files (x86)/Microsoft Visual Studi
o 8/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- The Fortran compiler identification is unknown
-- Check for working Fortran compiler: E:/Program Files (x86)/Intel/Compiler/For
tran/9.1/em64t/bin/ifort.exe
-- Check for working Fortran compiler: E:/Program Files (x86)/Intel/Compiler/For
tran/9.1/em64t/bin/ifort.exe  -- broken
CMake Error at E:/cmake28/share/cmake-2.8/Modules/CMakeTestFortranCompiler.cmake
:40 (MESSAGE):
  The Fortran compiler E:/Program Files
  (x86)/Intel/Compiler/Fortran/9.1/em64t/bin/ifort.exe is not able to
  compile a simple test program.

  It fails with the following output:

   Change Dir: E:/build/CMakeFiles/CMakeTmp



  Run Build Command:nmake /NOLOGO cmTryCompileExec\fast

E:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\nmake.exe -f
  CMakeFiles\cmTryCompileExec.dir\build.make /nologo -L
  CMakeFiles\cmTryCompileExec.dir\build

E:\cmake28\bin\cmake.exe -E cmake_progress_report
  E:\build\CMakeFiles\CMakeTmp\CMakeFiles 1

  Building Fortran object
  CMakeFiles/cmTryCompileExec.dir/testFortranCompiler.f.obj

E:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\ifort.exe
  @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nm1173.tmp

  Linking Fortran executable cmTryCompileExec.exe

E:\cmake28\bin\cmake.exe -E vs_link_exe
  E:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\ifort.exe /nologo
  @CMakeFiles\cmTryCompileExec.dir\objects1.rsp
  @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nm1174.tmp

  backend signals



  Severe: **Internal compiler error: internal abort** Please report this
  error along with the circumstances in which it occurred in a Software
  Problem Report.  Note: File and line given may not be explicit cause of
  this error.



  ifort: error: problem during multi-file optimization compilation (code 3)

  LINK Pass 1 failed.  with 3

  NMAKE : fatal error U1077: 'E:\cmake28\bin\cmake.exe' : return code
  '0x'

  Stop.

  NMAKE : fatal error U1077: 'E:\Program Files (x86)\Microsoft Visual Studio
  8\VC\BIN\nmake.exe' : return code '0x2'

  Stop.





  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:11 (enable_language)


-- Configuring incomplete, errors occurred!
___
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] ifort 9.1 unable to compile a simple test program

2010-08-06 Thread Verweij, Arjen
Hi Brad,

Uh, I don't know how that happened. I pulled a fresh copy of the initial 
virtual machine, it does get recognized as Intel. I started again, and included 
the manual link line. The rsp file exists and contains 
CMakeFiles/cmTryCompileExec.dir/testFortranCompiler.f.obj, the tmp file is 
nowhere to be found.

Spam below.

Regards,
Arjen

E:\buildcmake Z:\f90example -GNMake Makefiles --debug-trycompile
debug trycompile on
-- The C compiler identification is MSVC
-- The CXX compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1400
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check for working C compiler: E:/Program Files (x86)/Microsoft Visual Studio 
8/VC/bin/amd64/cl.exe
-- Check for working C compiler: E:/Program Files (x86)/Microsoft Visual Studio 
8/VC/bin/amd64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: E:/Program Files (x86)/Microsoft Visual 
Studio 8/VC/bin/amd64/cl.exe
-- Check for working CXX compiler: E:/Program Files (x86)/Microsoft Visual 
Studio 8/VC/bin/amd64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Hoi dit is status een
-- The Fortran compiler identification is Intel
-- Check for working Fortran compiler: E:/Program Files 
(x86)/Intel/Compiler/Fortran/9.1/em64t/bin/ifort.exe
-- Check for working Fortran compiler: E:/Program Files 
(x86)/Intel/Compiler/Fortran/9.1/em64t/bin/ifort.exe  -- broken
CMake Error at 
E:/cmake28/share/cmake-2.8/Modules/CMakeTestFortranCompiler.cmake:40 (MESSAGE):
  The Fortran compiler E:/Program Files
  (x86)/Intel/Compiler/Fortran/9.1/em64t/bin/ifort.exe is not able to
  compile a simple test program.

  It fails with the following output:

   Change Dir: E:/build/CMakeFiles/CMakeTmp



  Run Build Command:nmake /NOLOGO cmTryCompileExec\fast

E:\Program Files (x86)\Microsoft Visual Studio 
8\VC\BIN\amd64\nmake.exe
  -f CMakeFiles\cmTryCompileExec.dir\build.make /nologo -L
  CMakeFiles\cmTryCompileExec.dir\build

E:\cmake28\bin\cmake.exe -E cmake_progress_report
  E:\build\CMakeFiles\CMakeTmp\CMakeFiles 1

  Building Fortran object
  CMakeFiles/cmTryCompileExec.dir/testFortranCompiler.f.obj

E:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\ifort.exe
  @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nm1394.tmp

  Linking Fortran executable cmTryCompileExec.exe

E:\cmake28\bin\cmake.exe -E vs_link_exe
  E:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\ifort.exe /nologo
  @CMakeFiles\cmTryCompileExec.dir\objects1.rsp
  @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nm1395.tmp

  backend signals



  Severe: **Internal compiler error: internal abort** Please report this
  error along with the circumstances in which it occurred in a Software
  Problem Report.  Note: File and line given may not be explicit cause of
  this error.



  ifort: error: problem during multi-file optimization compilation (code 3)

  LINK Pass 1 failed.  with 3

  NMAKE : fatal error U1077: 'E:\cmake28\bin\cmake.exe' : return code
  '0x'

  Stop.

  NMAKE : fatal error U1077: 'E:\Program Files (x86)\Microsoft Visual Studio
  8\VC\BIN\amd64\nmake.exe' : return code '0x2'

  Stop.





  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:14 (enable_language)


-- Configuring incomplete, errors occurred!

E:\build

E:\buildcd CMakeFiles

E:\build\CMakeFilescd CMakeTmp

E:\build\CMakeFiles\CMakeTmpls
CMakeCache.txt
CMakeFiles
CMakeLists.txt
Makefile
cmTryCompileExec.exe
cmTryCompileExec.exe.embed.manifest
cmTryCompileExec.exe.embed.manifest.res
cmTryCompileExec.exe.intermediate.manifest
cmTryCompileExec.exe.resource.txt
cmTryCompileExec.ilk
cmake_install.cmake
cmtrycompileexec.pdb
testCCompiler.c
testCXXCompiler.cxx
testFortranCompiler.f

E:\build\CMakeFiles\CMakeTmpE:\cmake28\bin\cmake.exe -E vs_link_exe 
E:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\if
ort.exe /nologo @CMakeFiles\cmTryCompileExec.dir\objects1.rsp 
@C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nm1395.tmp

E:\build\CMakeFiles\CMakeTmpls
CMakeCache.txt
CMakeFiles
CMakeLists.txt
Makefile
cmTryCompileExec.exe
cmTryCompileExec.exe.embed.manifest
cmTryCompileExec.exe.embed.manifest.res
cmTryCompileExec.exe.intermediate.manifest
cmTryCompileExec.exe.resource.txt
cmTryCompileExec.ilk
cmake_install.cmake
cmtrycompileexec.pdb
testCCompiler.c
testCXXCompiler.cxx
testFortranCompiler.f

E:\build\CMakeFiles\CMakeTmp



-Original Message-
From: Brad King [mailto:brad.k...@kitware.com]
Sent: vrijdag 6 augustus 2010 17:49
To: Verweij, Arjen
Cc: cmake@cmake.org
Subject: Re: [CMake] ifort 9.1 unable to compile a simple test program

On 08/06/2010 11:26 AM, Verweij, Arjen wrote:
 I can execute the linkline manually and it seems to link fine.
 How can I debug what's going on?
[snip]
 -- The Fortran compiler identification is unknown

Re: [CMake] ifort 9.1 unable to compile a simple test program

2010-08-06 Thread Verweij, Arjen
I did it is below the cmake error in the previous email. No error just a prompt
 And no noticeable difference to me.


Arjen

-Original Message-


From: Brad King [mailto:brad.k...@kitware.com]
Sent: vrijdag 6 augustus 2010 21:39
To: Verweij, Arjen
Cc: cmake@cmake.org
Subject: Re: [CMake] ifort 9.1 unable to compile a simple test program

On 08/06/2010 03:12 PM, Verweij, Arjen wrote:
 it does get recognized as Intel.
[snip]
 -- The Fortran compiler identification is Intel

Good.

 I started again, and included the manual link line. The rsp file
exists
 and contains
CMakeFiles/cmTryCompileExec.dir/testFortranCompiler.f.obj,
 the tmp file is nowhere to be found.
[snip]
 -- Check for working Fortran compiler: E:/Program Files
(x86)/Intel/Compiler/Fortran/9.1/em64t/bin/ifort.exe  -- broken
[snip]
   E:\PROGRA~1\Intel\Compiler\Fortran\9.1\em64t\bin\ifort.exe /nologo
   @CMakeFiles\cmTryCompileExec.dir\objects1.rsp
   @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nm1395.tmp

The tmp file is generated by NMAKE temporarily when it runs the command.
You can see the full command in
CMakeFiles\cmTryCompileExec.dir\build.make.

Can you try the full command manually?

-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


[CMake] linking large lib on windows 64 bit

2010-08-04 Thread Verweij, Arjen
Hi,

I'm trying to link my project on Windows. Part of the task is constructing a 
big archive. Relevant compilers: Intel C/C++, Intel Fortran, Microsoft VS 2005 
SE SP1.

Apparently the link line is too long (expanded command line lib bla too long).

I have attempted to circumvent it with:

# create a C++ static library
#SET(CMAKE_CXX_CREATE_STATIC_LIBRARY  lib ${CMAKE_CL_NOLOGO} LINK_FLAGS 
/out:TARGET OBJECTS )
 SET(CMAKE_CXX_CREATE_STATIC_LIBRARY  lib ${CMAKE_CL_NOLOGO} LINK_FLAGS 
/out:TARGET ${CMAKE_START_TEMP_FILE} OBJECTS ${CMAKE_END_TEMP_FILE} )

according to http://www.itk.org/Bug/view.php?id=7217 - but cmake doesn't fill 
in the link flags. Is Bill's suggestion to patch Windows-cl.cmake the fix, or 
is it fix otherwise?

Regards,
Arjen
___
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] eliminating -blibpath on AIX

2010-08-04 Thread Verweij, Arjen
SKIP_BUILD_RPATH ?

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Dave Semeraro
Sent: woensdag 4 augustus 2010 15:58
To: cmake@cmake.org
Subject: [CMake] eliminating -blibpath on AIX


Hello,

I am building projects on an AIX system and I want the contents of the
link.txt file to not include the -blibpath information at the end. I
have tried all combinations of the CMAKE_SKIP_RPATH and other rpath
related commands and can not get rid of it. I have read the rpath info
on the wiki. Is there a setting for cmake that will allow me to do this
or do I have to edit the link.txt files by hand. I would rather not do
that as there are lots of them.

Best,
Dave Semeraro
NCSA - University of Illinois
___
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] eliminating -blibpath on AIX

2010-08-04 Thread Verweij, Arjen
Patch Modules/Platform/AIX.cmake ?

-Original Message-
From: Dave Semeraro [mailto:semer...@ncsa.illinois.edu]
Sent: woensdag 4 augustus 2010 16:42
To: Verweij, Arjen
Subject: Re: [CMake] eliminating -blibpath on AIX


Arjen and Denis, Neither suggestion worked. There seems to be no way to
get rid of the -blibpath:/usr/lib:lib at the end of the link command.
Unfortunately, it seems that under aix this is all that goes into the
loader section of the executable and so all the other libs that are
linked are not found. I can get around this with the LIBPATH env
variable but I really dont want to. If there is no -blibpath at link
time the loader section of the executable gets packed with the
directories specified by the -L option to ld. Which is what I want. I
suppose I can go the other route and just include all those libraries in
the -blibpath option string. Not the most elegant solution. But then
again elegance is overrated.

Dave
- Original Message -
 SKIP_BUILD_RPATH ?

 -Original Message-
 From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On
 Behalf
 Of Dave Semeraro
 Sent: woensdag 4 augustus 2010 15:58
 To: cmake@cmake.org
 Subject: [CMake] eliminating -blibpath on AIX
 
 
 Hello,
 
 I am building projects on an AIX system and I want the contents of
 the
 link.txt file to not include the -blibpath information at the end. I
 have tried all combinations of the CMAKE_SKIP_RPATH and other rpath
 related commands and can not get rid of it. I have read the rpath
 info
 on the wiki. Is there a setting for cmake that will allow me to do
 this
 or do I have to edit the link.txt files by hand. I would rather not
 do
 that as there are lots of them.
 
 Best,
 Dave Semeraro
 NCSA - University of Illinois
 ___
 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
___
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-developers] Bug fix requests for the *next* release of CMake...

2010-07-29 Thread Verweij, Arjen
I'd like to see those fixed:
http://public.kitware.com/Bug/view.php?id=11030

That one is closed.
___
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] libraryname decoration

2010-07-29 Thread Verweij, Arjen
Olaf,

 Why?
 I'm still waiting for someone to post a reason of why a decorated
 name is a problem for them.
 Also waiting on an answer to the code duplication issue.

Perhaps you should write a proposal that takes care of details, like how you 
would like to see this decorated. Then write a patch or create a cmake module 
that takes care of this. I don't see code duplication.

Arjen
___
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] Debug/Release configurations for codeblocks ?

2010-07-27 Thread Verweij, Arjen
Hi,

The default is for CMake to generate a Release configuration for
Makefile based projects. ie, if you do NOT specify or otherwise set
CMAKE_BUILD_TYPE then you will be a Release configuration.

I think this statement is false for Windows, or I am misunderstanding 
Windows-cl.cmake -- I had an interesting time getting rid of all the debug 
stuff.

Arjen


___
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] Debug/Release configurations for codeblocks ?

2010-07-27 Thread Verweij, Arjen
Hi,

Isn't build_type = Release sufficient?

Not for the way I'm mistreating cmake ;)

set (CMAKE_BUILD_TYPE RELEASE FORCE)

SET (CMAKE_EXE_LINKER_FLAGS_INIT  FORCE)

set (CMAKE_C_FLAGS_RELEASE_INIT )
set (CMAKE_CXX_FLAGS_RELEASE_INIT )
set (CMAKE_Fortran_FLAGS_RELEASE_INIT )

Also I have to add -nodefaultlib:msvcrt.lib (I want libcmt) and if I add a list 
of libs to exclude (-nodefaultlib:xxx.lib -nodefaultlib:yyy.lib 
-nodefaultlib:zzz) the last one can't have the .lib extension because I get it 
twice. (zzz.lib.lib if you don't omit the extension yourself. Perhaps a bug, 
but I don't have time to investigate right-now.

Arjen
___
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] [VS gen] Multiple configurations code

2010-07-27 Thread Verweij, Arjen
David,

I hear what you are saying, but a lot of legacy Makefile based system support 
make and make debug alongside each other. I'm still looking for the cmake 
way to easily mark a small part of a project to be built with debug flags. For 
instance, if you have functionality in a static archive, you just link the new 
debug enabled object file against the main.o and the archive and you end up 
with some debugging symbols in no time.

Regards,
Arjen

From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of 
David Cole

[snip]

Since this is a prevalent scheme that is widely used by folks coming from 
single-config, single-architecture (makefile based) build systems... it's the 
way CMake has gotten to the point it's at now. I'm not saying this is good or 
bad, just explaining that this is the way it is, and that there are historical 
reasons why we got to this point.
___
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] Debug/Release configurations for codeblocks ?

2010-07-27 Thread Verweij, Arjen
Hi,

Which is why I stated Makefile based generators. Not nmake or msvc.

Alright, I didn't know you implied Unix Makefiles :)

Arjen
___
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 generators on windows: nmake versus jom

2010-07-26 Thread Verweij, Arjen
Hi Alex,

Will this do? 
http://www.cmake.org/Wiki/CMake_Generator_Specific_Information#Makefile_generators

Regards,
Arjen

-Original Message-
From: Alexander Neundorf [mailto:a.neundorf-w...@gmx.net]
Sent: zondag 25 juli 2010 19:09
To: cmake@cmake.org
Cc: Verweij, Arjen; Brad King
Subject: Re: [CMake] cmake generators on windows: nmake versus jom

On Thursday 22 July 2010, Verweij, Arjen wrote:
 Brad,

 I found another repository with jom binaries. It works fine with
0.9.4.

 Apparently the original link I used to download JOM was ancient.

Here (
http://www.cmake.org/Wiki/CMake_Generator_Specific_Information#Makefile_
generators )
is some documentation about the available generators.
Feel free to add some notes about the jom generator there :-)
It's a wiki, you can simply get a login.

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


Re: [CMake] how to set ar/ranlib flags per target

2010-07-22 Thread Verweij, Arjen
Hi Kelly,

I'm using cmake to migrate from a legacy build system. The source consists of C 
C++ Fortran and Fortran90. I think -in all- there are 15 binaries.

One of the problems for us is linking. Cmake somehow decides to take compiler X 
to link executable Y. But in some cases it didn't use the one we expected.

So we wrapped add_executable() inside a function that takes an extra argument 
to control the linker language:

function (FEXECUTABLE EXE_NAME LINK_LANG )

[...]

add_executable (${EXE_NAME_EXE} ${FILE_LIST_M})

if ( ${LINK_LANG} STREQUAL CXX )
set_target_properties (${EXE_NAME_EXE} PROPERTIES LINKER_LANGUAGE CXX)
elseif ( ${LINK_LANG} STREQUAL C )
set_target_properties (${EXE_NAME_EXE} PROPERTIES LINKER_LANGUAGE C)
elseif ( ${LINK_LANG} STREQUAL Fortran )
set_target_properties (${EXE_NAME_EXE} PROPERTIES LINKER_LANGUAGE 
Fortran)
else ()
message( FATAL Unknown linker language specified for function 
FEXECUTABLE: ${LINK_LANG )
endif ()

[...]

endfunction (FEXECUTABLE)

I'm not saying that this is proper usage of cmake, but it works for me (tm).

Perhaps you can try a similar approach with add_library() - 
myadd_static_library() ? - to indicate if you want to use a 32-bit or 64-bit 
archiver.

Regards,
Arjen

-Original Message-
From: Hickel, Kelly [mailto:kelly_hic...@bmc.com]
Sent: donderdag 22 juli 2010 13:46
To: Hickel, Kelly; Verweij, Arjen; cmake@cmake.org
Subject: RE: how to set ar/ranlib flags per target

Arjen, I saw your response about wrapping add_library on the list, but
for some reason it didn't get to my inbox.

I'm not sure what you mean by wrapping, are you talking about a code
change, or some sort of macro?  So far, I haven't been able to come up
with any way of jamming -X64 into the right place in the ar command.

Thanks,


Kelly Hickel



 -Original Message-
 From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On
 Behalf Of Hickel, Kelly
 Sent: Wednesday, July 21, 2010 3:46 PM
 To: Verweij, Arjen; cmake@cmake.org
 Subject: Re: [CMake] how to set ar/ranlib flags per target


  -Original Message-
  From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On
  Behalf Of Verweij, Arjen
  Sent: Wednesday, July 21, 2010 3:43 PM
  To: cmake@cmake.org
  Subject: Re: [CMake] how to set ar/ranlib flags per target
 
  Kelly,
 
  I suffer from the same problem and solved it like this:
 
  SET(CMAKE_C_ARCHIVE_CREATE CMAKE_AR -X64 cr TARGET LINK_FLAGS
  OBJECTS)
  SET(CMAKE_C_ARCHIVE_APPEND CMAKE_AR -X64 r  TARGET LINK_FLAGS
  OBJECTS)
  SET(CMAKE_C_ARCHIVE_FINISH CMAKE_RANLIB -X64 TARGET)
  SET(CMAKE_CXX_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
  SET(CMAKE_CXX_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
  SET(CMAKE_CXX_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})
  SET(CMAKE_Fortran_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
  SET(CMAKE_Fortran_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
  SET(CMAKE_Fortran_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})
 
  Does that help you?
 
  Regards,
  Arjen

 Thanks Arjen, but I don't believe it does.
 As far as I know that sets the flag globally, I have some targets that
 are 32 bit and some that are 64 bit, so I need to set it per target.

 Reading the source, I found STATIC_LIBRARY_FLAGS, which *almost*
works,
 but it puts the flags AFTER the name of the output library, and ar on
 AIX doesn't like that, complains it can't find the object file -X64.
 Apparently the flag must come before the cr or r commands, e.g.
ar
 -X64 cr foo.a bar.o baz.o.

 Thanks,
 -Kelly

 
  -Original Message-
  From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On
  Behalf
  Of Hickel, Kelly
  Sent: woensdag 21 juli 2010 21:00
  To: cmake@cmake.org
  Subject: [CMake] how to set ar/ranlib flags per target
  
  
  Hello,
  
  I'm using CMake 2.8.1, and have a problem on AIX similar to this
 one:
  http://web.archiveorange.com/archive/v/5y7PkUbT6iizO31eshQa .
  
  I have the additional complication of needing to build both 32 and
 64
  bit libraries from the same set of CMake files.
  
  I've tried a number of things (list below), does anyone have any
  ideas?
  
  (Wherever I write CMAKE_C_xyz below, I've also changed
CMAKE_CXX_xyz
  at the same time, where I write xyz_ARCHIVE_CREATE, I've also
 changed
  xyz_ARCHIVE_APPEND)
  
  1) Adding the flag to LINK_FLAGS because the definition for
 CMAKE_C_ARCHIVE_CREATE appears to include that on the command
 line,
 but the generated link.txt input files don't include any
options.
  2) Changed the definition for CMAKE_C_ARCHIVE_CREATE in a private
 toolchain file that I specify on the command line.  By writing
 messages that show the value of that variable, I can see my
 change
 take, but it appears to get reset to the default before
 processing
  of
 my CMakeLists.txt file begins.
  3) Frequently set CMAKE_C_ARCHIVE_CREATE to CMAKE_AR AR_FLAGS
r
 TARGET LINK_FLAGS OBJECTS, when I did this, I ended up

Re: [CMake] cmake generators on windows: nmake versus jom

2010-07-22 Thread Verweij, Arjen
Brad,

I found another repository with jom binaries. It works fine with 0.9.4.

Apparently the original link I used to download JOM was ancient.

Thanks,
Arjen

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Verweij, Arjen
Sent: woensdag 21 juli 2010 23:07
To: cmake@cmake.org
Subject: Re: [CMake] cmake generators on windows: nmake versus jom

Hi,

The generators are testing and inspecting the toolchain.
Something is not building as expected so it reports the problem up
front rather than waiting for some subtle error when building the main
project.

OK.

 NMake Makefiles JOM
[snip]
 -- FIXME: altered Windows.cmake for debugging purposes.

What is this?  What was altered?

# uncomment these out to debug nmake and borland makefiles # uncommented
by AVE message (STATUS FIXME: altered Windows.cmake for debugging
purposes.) SET(CMAKE_START_TEMP_FILE ) SET(CMAKE_END_TEMP_FILE )
SET(CMAKE_VERBOSE_MAKEFILE 1)

I want to see all the compile flags. It turns out that for reasons
unknown the default setting for CMAKE_BUILD_TYPE is Debug for MSVC7.1,
causing all kinds of trouble like mixing debug and non-debug libraries
when linking the executable.

 -- Check for working Fortran compiler: E:/Program
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe
 -- Check for working Fortran compiler: E:/Program
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe  -- works

This means the basic capability to compile an executable seems to work,
at least the build tool does not return failure.

Do you actually have JOM installed in the environment?

It is in the path.

Please post CMakeError.log and CMakeOutput.log from the CMakeFiles
directory in the build tree.

Enclosed.

Thanks,
Arjen
___
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] cmake generators on windows: nmake versus jom

2010-07-21 Thread Verweij, Arjen
Hi,

I'm having trouble generating the Makefiles I want on Windows. I can't generate 
Unix Makefiles because cmake fails to compile a simple program. But also 
using generators that should be very much alike, NMake Makefiles and NMake 
Makefiles JOM, the first will finish and the second will not. This is on a 
fresh install (Virtual machine) with Ifort 8.1, MSVC++ 7.1 and cmake 2.8.2, no 
specials.

Is it normal for generators to be this picky? Is there documentation on this 
subject? While browsing email archives I've read that cmake assumes your 
compiler works but I guess there's more going on under the hood than a mere 
compilation check.

Thanks,
Arjen


NMake Makefiles:
-- Windows!
-- FLEXLM=Z:/projects/nastia_src/src/ext/flexlm/v11.6.1
-- ALSDK=Z:/projects/nastia_src/src/ext/alsdk/v10.0.0
-- FLEXLMARCH=i86_n3
-- The Fortran compiler identification is Intel
-- FIXME: altered Windows.cmake for debugging purposes.
-- Check for working Fortran compiler: E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe
-- Check for working Fortran compiler: E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe  -- works
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Checking whether E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe supports Fortran 90
-- Checking whether E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe supports Fortran 90 -- yes
-- The C compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1310
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check for working C compiler: E:/Program Files/Microsoft Visual Studio .NET 
2003/Vc7/bin/cl.exe
-- Check for working C compiler: E:/Program Files/Microsoft Visual Studio .NET 
2003/Vc7/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- The CXX compiler identification is MSVC
-- Check for working CXX compiler: E:/Program Files/Microsoft Visual Studio 
.NET 2003/Vc7/bin/cl.exe
-- Check for working CXX compiler: E:/Program Files/Microsoft Visual Studio 
.NET 2003/Vc7/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for C++ include iostream
-- Looking for C++ include iostream - found
-- Check for STD namespace
-- Check for STD namespace - found
-- Found FLEX: E:/UnxUtils/usr/local/wbin/flex.exe
-- Found BISON: E:/UnxUtils/usr/local/wbin/bison.exe

NMake Makefiles JOM
-- Windows!
-- FLEXLM=Z:/projects/nastia_src/src/ext/flexlm/v11.6.1
-- ALSDK=Z:/projects/nastia_src/src/ext/alsdk/v10.0.0
-- FLEXLMARCH=i86_n3
-- The Fortran compiler identification is Intel
-- FIXME: altered Windows.cmake for debugging purposes.
-- Check for working Fortran compiler: E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe
-- Check for working Fortran compiler: E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe  -- works
-- Detecting Fortran compiler ABI info
CMake Error: Could not COPY_FILE.
  OutputFile: ''
copyFile: 'E:/build/CMakeFiles/CMakeDetermineCompilerABI_Fortran.bin'

Unable to find executable for try_compile: tried 
E:/build/CMakeFiles/CMakeTmp/cmTryCompileExec.exe and 
E:/build/CMakeFiles/CMakeTmp/Debug
/cmTryCompileExec.exe and 
E:/build/CMakeFiles/CMakeTmp/Development/cmTryCompileExec.exe.

-- Detecting Fortran compiler ABI info - done
CMake Error at 
E:/cmake28/share/cmake-2.8/Modules/CMakeDetermineCompilerABI.cmake:40 (FILE):
  file STRINGS file
  E:/build/CMakeFiles/CMakeDetermineCompilerABI_Fortran.bin cannot be read.
Call Stack (most recent call first):
  E:/cmake28/share/cmake-2.8/Modules/CMakeTestFortranCompiler.cmake:59 
(CMAKE_DETERMINE_COMPILER_ABI)
  compilers.cmake:45 (enable_language)
  CMakeLists.txt:4 (include)


-- Checking whether E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe supports Fortran 90
-- Checking whether E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe supports Fortran 90 -- yes
-- The C compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1310
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check for working C compiler: E:/Program Files/Microsoft Visual Studio .NET 
2003/Vc7/bin/cl.exe
-- Check for working C compiler: E:/Program Files/Microsoft Visual Studio .NET 
2003/Vc7/bin/cl.exe -- works
-- Detecting C compiler ABI info
CMake Error: Could not COPY_FILE.
  OutputFile: ''
copyFile: 'E:/build/CMakeFiles/CMakeDetermineCompilerABI_C.bin'

Unable to find executable for try_compile: tried 
E:/build/CMakeFiles/CMakeTmp/cmTryCompileExec.exe and 
E:/build/CMakeFiles/CMakeTmp/Debug
/cmTryCompileExec.exe and 
E:/build/CMakeFiles/CMakeTmp/Development/cmTryCompileExec.exe.

-- Detecting C compiler ABI info - done
CMake Error at 
E:/cmake28/share/cmake-2.8/Modules/CMakeDetermineCompilerABI.cmake:40 (FILE):
  file STRINGS file 

Re: [CMake] incremental build slow because of F90 (cmake_copy_f90_mod)

2010-07-21 Thread Verweij, Arjen
Brad,

Is this normal behaviour after all? Or at least intended?

Thanks,
Arjen

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Verweij, Arjen
Sent: dinsdag 13 juli 2010 13:27
To: cmake@cmake.org
Subject: Re: [CMake] incremental build slow because of F90
(cmake_copy_f90_mod)

Sent Brad source code to reproduce the bahaviour. Also discovered that
the time is actually spent in make and not cmake_copy_f90_mod or touch;
they are fast.

Regards,
Arjen

PS Attempting to attach log and source code for completeness here as
well

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On
Behalf Of Verweij, Arjen
Sent: maandag 12 juli 2010 20:31
To: Brad King
Cc: cmake@cmake.org
Subject: Re: [CMake] incremental build slow because of F90
(cmake_copy_f90_mod)

Hi Brad,

It's not *supposed* to do that.  Can you produce a minimal project
that reproduces that behavior?

This is reassuring. I'm probably not able to reproduce it with
something small, but I could try. I would imagine that if it's not
supposed to do it, it likely won't :) Apparently, the project has been
set up in a peculiar way causing cmake to require touch 
cmake_copyf90_mod.

The current build system has issues with this part of the code as well,
with incremental builds.

Thanks,
Arjen
___
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] cmake generators on windows: nmake versus jom

2010-07-21 Thread Verweij, Arjen
Hi Kelly,

Thanks for your reply. To circumvent these issues we've taken a fresh Windows 
XP VM and installed compilers cmake UnxUtils but nothing else. No special 
environment variables clouding the view either :)

Regards,
Arjen

From: Kelly Thompson [mailto:k...@lanl.gov]
Sent: woensdag 21 juli 2010 17:00
To: Verweij, Arjen; cmake@cmake.org
Subject: RE: [CMake] cmake generators on windows: nmake versus jom

Hi Arjen,

This may be totally the wrong direction, but we have seen similar errors that 
appear to be caused by resident programs that crawl the local filesystem.  
Desktop search engines (Microsoft or Google) or anti-virus software may try to 
open your build files (including temporary files) for indexing and have the 
side effect of locking CMake out.  You might try disabling your antivirus or 
desktop search tools while running CMake.

-kt

From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of 
Verweij, Arjen
Sent: Wednesday, July 21, 2010 8:32 AM
To: cmake@cmake.org
Subject: [CMake] cmake generators on windows: nmake versus jom

Hi,

I'm having trouble generating the Makefiles I want on Windows. I can't generate 
Unix Makefiles because cmake fails to compile a simple program. But also 
using generators that should be very much alike, NMake Makefiles and NMake 
Makefiles JOM, the first will finish and the second will not. This is on a 
fresh install (Virtual machine) with Ifort 8.1, MSVC++ 7.1 and cmake 2.8.2, no 
specials.

Is it normal for generators to be this picky? Is there documentation on this 
subject? While browsing email archives I've read that cmake assumes your 
compiler works but I guess there's more going on under the hood than a mere 
compilation check.

Thanks,
Arjen


NMake Makefiles:
-- Windows!
-- FLEXLM=Z:/projects/nastia_src/src/ext/flexlm/v11.6.1
-- ALSDK=Z:/projects/nastia_src/src/ext/alsdk/v10.0.0
-- FLEXLMARCH=i86_n3
-- The Fortran compiler identification is Intel
-- FIXME: altered Windows.cmake for debugging purposes.
-- Check for working Fortran compiler: E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe
-- Check for working Fortran compiler: E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe  -- works
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Checking whether E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe supports Fortran 90
-- Checking whether E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe supports Fortran 90 -- yes
-- The C compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1310
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check for working C compiler: E:/Program Files/Microsoft Visual Studio .NET 
2003/Vc7/bin/cl.exe
-- Check for working C compiler: E:/Program Files/Microsoft Visual Studio .NET 
2003/Vc7/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- The CXX compiler identification is MSVC
-- Check for working CXX compiler: E:/Program Files/Microsoft Visual Studio 
.NET 2003/Vc7/bin/cl.exe
-- Check for working CXX compiler: E:/Program Files/Microsoft Visual Studio 
.NET 2003/Vc7/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for C++ include iostream
-- Looking for C++ include iostream - found
-- Check for STD namespace
-- Check for STD namespace - found
-- Found FLEX: E:/UnxUtils/usr/local/wbin/flex.exe
-- Found BISON: E:/UnxUtils/usr/local/wbin/bison.exe

NMake Makefiles JOM
-- Windows!
-- FLEXLM=Z:/projects/nastia_src/src/ext/flexlm/v11.6.1
-- ALSDK=Z:/projects/nastia_src/src/ext/alsdk/v10.0.0
-- FLEXLMARCH=i86_n3
-- The Fortran compiler identification is Intel
-- FIXME: altered Windows.cmake for debugging purposes.
-- Check for working Fortran compiler: E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe
-- Check for working Fortran compiler: E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe  -- works
-- Detecting Fortran compiler ABI info
CMake Error: Could not COPY_FILE.
  OutputFile: ''
copyFile: 'E:/build/CMakeFiles/CMakeDetermineCompilerABI_Fortran.bin'

Unable to find executable for try_compile: tried 
E:/build/CMakeFiles/CMakeTmp/cmTryCompileExec.exe and 
E:/build/CMakeFiles/CMakeTmp/Debug
/cmTryCompileExec.exe and 
E:/build/CMakeFiles/CMakeTmp/Development/cmTryCompileExec.exe.

-- Detecting Fortran compiler ABI info - done
CMake Error at 
E:/cmake28/share/cmake-2.8/Modules/CMakeDetermineCompilerABI.cmake:40 (FILE):
  file STRINGS file
  E:/build/CMakeFiles/CMakeDetermineCompilerABI_Fortran.bin cannot be read.
Call Stack (most recent call first):
  E:/cmake28/share/cmake-2.8/Modules/CMakeTestFortranCompiler.cmake:59 
(CMAKE_DETERMINE_COMPILER_ABI)
  compilers.cmake:45 (enable_language)
  CMakeLists.txt:4 (include)


-- Checking whether E:/Program 
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe supports Fortran

Re: [CMake] how to set ar/ranlib flags per target

2010-07-21 Thread Verweij, Arjen
Kelly,

I suffer from the same problem and solved it like this:

SET(CMAKE_C_ARCHIVE_CREATE CMAKE_AR -X64 cr TARGET LINK_FLAGS OBJECTS)
SET(CMAKE_C_ARCHIVE_APPEND CMAKE_AR -X64 r  TARGET LINK_FLAGS OBJECTS)
SET(CMAKE_C_ARCHIVE_FINISH CMAKE_RANLIB -X64 TARGET)
SET(CMAKE_CXX_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
SET(CMAKE_CXX_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
SET(CMAKE_CXX_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})
SET(CMAKE_Fortran_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
SET(CMAKE_Fortran_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
SET(CMAKE_Fortran_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})

Does that help you?

Regards,
Arjen

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Hickel, Kelly
Sent: woensdag 21 juli 2010 21:00
To: cmake@cmake.org
Subject: [CMake] how to set ar/ranlib flags per target


Hello,

I'm using CMake 2.8.1, and have a problem on AIX similar to this one:
http://web.archiveorange.com/archive/v/5y7PkUbT6iizO31eshQa .

I have the additional complication of needing to build both 32 and 64
bit libraries from the same set of CMake files.

I've tried a number of things (list below), does anyone have any ideas?

(Wherever I write CMAKE_C_xyz below, I've also changed CMAKE_CXX_xyz
at the same time, where I write xyz_ARCHIVE_CREATE, I've also changed
xyz_ARCHIVE_APPEND)

1) Adding the flag to LINK_FLAGS because the definition for
   CMAKE_C_ARCHIVE_CREATE appears to include that on the command line,
   but the generated link.txt input files don't include any options.
2) Changed the definition for CMAKE_C_ARCHIVE_CREATE in a private
   toolchain file that I specify on the command line.  By writing
   messages that show the value of that variable, I can see my change
   take, but it appears to get reset to the default before processing of
   my CMakeLists.txt file begins.
3) Frequently set CMAKE_C_ARCHIVE_CREATE to CMAKE_AR AR_FLAGS r
   TARGET LINK_FLAGS OBJECTS, when I did this, I ended up with
the
   literal string AR_FLAGS in the link.txt file, not that useful!

I'm sure I'm missing something, any hints will be appreciated!

Thanks,
Kelly

___
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] cmake generators on windows: nmake versus jom

2010-07-21 Thread Verweij, Arjen
Hi,

The generators are testing and inspecting the toolchain.
Something is not building as expected so it reports the
problem up front rather than waiting for some subtle
error when building the main project.

OK.

 NMake Makefiles JOM
[snip]
 -- FIXME: altered Windows.cmake for debugging purposes.

What is this?  What was altered?

# uncomment these out to debug nmake and borland makefiles
# uncommented by AVE
message (STATUS FIXME: altered Windows.cmake for debugging purposes.)
SET(CMAKE_START_TEMP_FILE )
SET(CMAKE_END_TEMP_FILE )
SET(CMAKE_VERBOSE_MAKEFILE 1)

I want to see all the compile flags. It turns out that for reasons unknown the 
default setting for CMAKE_BUILD_TYPE is Debug for MSVC7.1, causing all kinds of 
trouble like mixing debug and non-debug libraries when linking the executable.

 -- Check for working Fortran compiler: E:/Program
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe
 -- Check for working Fortran compiler: E:/Program
Files/Intel/Fortran/compiler80/IA32/BIN/ifort.exe  -- works

This means the basic capability to compile an executable
seems to work, at least the build tool does not return
failure.

Do you actually have JOM installed in the environment?

It is in the path.

Please post CMakeError.log and CMakeOutput.log from the
CMakeFiles directory in the build tree.

Enclosed.

Thanks,
Arjen


CMakeError.log
Description: CMakeError.log


CMakeOutput.log
Description: CMakeOutput.log
___
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] how to set ar/ranlib flags per target

2010-07-21 Thread Verweij, Arjen
Well the thread you reference asks the TS to submit a bug in Mantis. Was such a 
bug ever submitted?

I did a quick check and I can't find one using several queries.

No other ideas for fixing your problem except for wrapping add_library to 
include 32/64 bit argument.

Regards,
Arjen

-Original Message-
From: Hickel, Kelly [mailto:kelly_hic...@bmc.com]
Sent: woensdag 21 juli 2010 22:46
To: Verweij, Arjen; cmake@cmake.org
Subject: RE: how to set ar/ranlib flags per target


 -Original Message-
 From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On
 Behalf Of Verweij, Arjen
 Sent: Wednesday, July 21, 2010 3:43 PM
 To: cmake@cmake.org
 Subject: Re: [CMake] how to set ar/ranlib flags per target

 Kelly,

 I suffer from the same problem and solved it like this:

 SET(CMAKE_C_ARCHIVE_CREATE CMAKE_AR -X64 cr TARGET LINK_FLAGS
 OBJECTS)
 SET(CMAKE_C_ARCHIVE_APPEND CMAKE_AR -X64 r  TARGET LINK_FLAGS
 OBJECTS)
 SET(CMAKE_C_ARCHIVE_FINISH CMAKE_RANLIB -X64 TARGET)
 SET(CMAKE_CXX_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
 SET(CMAKE_CXX_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
 SET(CMAKE_CXX_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})
 SET(CMAKE_Fortran_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
 SET(CMAKE_Fortran_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
 SET(CMAKE_Fortran_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})

 Does that help you?

 Regards,
 Arjen

Thanks Arjen, but I don't believe it does.
As far as I know that sets the flag globally, I have some targets that
are 32 bit and some that are 64 bit, so I need to set it per target.

Reading the source, I found STATIC_LIBRARY_FLAGS, which *almost* works,
but it puts the flags AFTER the name of the output library, and ar on
AIX doesn't like that, complains it can't find the object file -X64.
Apparently the flag must come before the cr or r commands, e.g. ar
-X64 cr foo.a bar.o baz.o.

Thanks,
-Kelly


 -Original Message-
 From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On
 Behalf
 Of Hickel, Kelly
 Sent: woensdag 21 juli 2010 21:00
 To: cmake@cmake.org
 Subject: [CMake] how to set ar/ranlib flags per target
 
 
 Hello,
 
 I'm using CMake 2.8.1, and have a problem on AIX similar to this one:
 http://web.archiveorange.com/archive/v/5y7PkUbT6iizO31eshQa .
 
 I have the additional complication of needing to build both 32 and 64
 bit libraries from the same set of CMake files.
 
 I've tried a number of things (list below), does anyone have any
 ideas?
 
 (Wherever I write CMAKE_C_xyz below, I've also changed CMAKE_CXX_xyz
 at the same time, where I write xyz_ARCHIVE_CREATE, I've also changed
 xyz_ARCHIVE_APPEND)
 
 1) Adding the flag to LINK_FLAGS because the definition for
CMAKE_C_ARCHIVE_CREATE appears to include that on the command
line,
but the generated link.txt input files don't include any options.
 2) Changed the definition for CMAKE_C_ARCHIVE_CREATE in a private
toolchain file that I specify on the command line.  By writing
messages that show the value of that variable, I can see my change
take, but it appears to get reset to the default before processing
 of
my CMakeLists.txt file begins.
 3) Frequently set CMAKE_C_ARCHIVE_CREATE to CMAKE_AR AR_FLAGS r
TARGET LINK_FLAGS OBJECTS, when I did this, I ended up with
 the
literal string AR_FLAGS in the link.txt file, not that useful!
 
 I'm sure I'm missing something, any hints will be appreciated!
 
 Thanks,
 Kelly
 
 ___
 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

___
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 2.8.2 win32: invalid escape sequence when finding fortran compiler

2010-07-15 Thread Verweij, Arjen
Spot on Bill:

C:\Users\madymo\build\CMakeFiles\CMakeTmpcat CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
PROJECT(CMAKE_TRY_COMPILE Fortran)
SET(CMAKE_VERBOSE_MAKEFILE 1)
SET(CMAKE_Fortran_FLAGS  /w /I:C:\Program Files\VNI\CTT5.0\include\IA32 
/fpe:3 /nologo   ${COMPILE_DEFINITIONS})
INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES})
SET(CMAKE_SUPPRESS_REGENERATION 1)
LINK_DIRECTORIES(${LINK_DIRECTORIES})
ADD_EXECUTABLE(cmTryCompileExec 
C:/Users/madymo/build/CMakeFiles/CMakeTmp/testFortranCompiler.f)
TARGET_LINK_LIBRARIES(cmTryCompileExec ${LINK_LIBRARIES})

Also, what is in your environment?  Anything like CFLAGS, FFLAGS or
others that CMake might pick up and try to use?

F90FLAGS=/w /I:C:\Program Files\VNI\CTT5.0\include\IA32 /fpe:3 /nologo
FFLAGS=/w /I:C:\Program Files\VNI\CTT5.0\include\IA32 /fpe:3 /nologo

I guess you get all these for free when you install the intel fortran compiler. 
I'll see if I can get rid of these without breaking the current build system :)

Thanks,
Arjen
___
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 2.8.2 win32: invalid escape sequence when finding fortran compiler

2010-07-15 Thread Verweij, Arjen
Hi Bill,

I don't think we ended up with those flags after installing the intel
compiler for the dashboard we run at Kitware.  Are you sure that came
from the installer?

Not really. I wasn't around when that system was set up.

I tried from cmd.exe, MKS ksh and cygwin shell to get something with Makefiles 
on Windows after unsetting the FFLAGS and F90FLAGS, but the only thing I can 
successfully generate is solution files. With Makefiles is borks somehow (cmake 
can't generate for me).

Well, I'll go see if --debug-trycompile helps me point in the right direction 
or if I can find something online or in the book and otherwise start another 
thread :P

Thanks,
Arjen


___
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] cmake 2.8.2 win32: invalid escape sequence when finding fortran compiler

2010-07-14 Thread Verweij, Arjen
Hi,

I'm trying a little F90 example on Windows with cmake. Apparently something is 
amiss, but I can't find much on Google about it; at least not about this 
particular case.

All I do is cmake ..\f90example and the following appears in my terminal:

S:\mnt\usr3\people\verweija\buildcmake ..\f90example
-- Building for: Visual Studio 7 .NET 2003
-- Check for working C compiler using: Visual Studio 7 .NET 2003
-- Check for working C compiler using: Visual Studio 7 .NET 2003 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 7 .NET 2003
-- Check for working CXX compiler using: Visual Studio 7 .NET 2003 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working Fortran compiler using: Visual Studio 7 .NET 2003
CMake Error at CMakeLists.txt:4 (SET):
  Syntax error in cmake code at

S:/mnt/usr3/people/verweija/build/CMakeFiles/CMakeTmp/CMakeLists.txt:4

  when parsing string

C:\Program

  Invalid escape sequence \P


CMake Error at CMakeLists.txt:4 (SET):
  Syntax error in cmake code at

S:/mnt/usr3/people/verweija/build/CMakeFiles/CMakeTmp/CMakeLists.txt:4

  when parsing string

Files\VNI\CTT5.0\include\IA32 /fpe:3 /nologo   ${COMPILE_DEFINITIONS}

  Invalid escape sequence \V


CMake Error: Internal CMake error, TryCompile configure of cmake failed
-- Configuring incomplete, errors occurred!

Please advise :)

Thanks,
Arjen

Arjen Verweij
QA/Test Engineer

[cid:image001.gif@01CB236F.5D309C80]


Einsteinlaan 6
2289 CC  Rijswijk
The Netherlands

Phone:  +31 88 827 7086
Fax:   +31 88 827 7003
Email:  arjen.verw...@tass-safe.com
www.tass-safe.com

This e-mail and its contents are subject to a DISCLAIMER with important 
RESERVATIONS.



inline: image001.gif___
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_LANG_FLAGS added to link rule

2010-07-13 Thread Verweij, Arjen
Hello Michael,

Apparently, there may be - at least with GCC and shared libraries - a
need to specify flags on the link line if they have been specified on
the compile line before. Though, I don't know an example of a damaged
binary due to different sets of flags for compiling and linking.

Thanks. I understand it a bit better now, but I'm not sure how other compilers 
implement this. Fortunately I can redefine the way cmake generates rules for 
the Fortran linkstage, so I'm a happy camper. Hopefully when I'm done the 
spirit of cmake is still alive and we have a somewhat crossplatform 
implementation of our build system. I need to find some more resources on how 
to handle special cases without manhandling cmake. Well, I digress.

Regards,
Arjen
___
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_LANG_FLAGS added to link rule

2010-07-13 Thread Verweij, Arjen
Hi,

AFAIK there
is nothing that will be broken on AIX by removing FLAGS from
the link rule for Fortran executables.

OK, I will just redefine the Fortran linker to keep the cmake generator 
compatible then start scrubbing link flags based on compiler documentation, 
because:

What flags are causing the problem?

-xlf77=noleadzero and -xlf77=gedit77 -- as it turns out (reading documentation 
to figure out what these flags are supposed to do) they are incorrect and 
should read:
-qxlf77=noleadzero and -qxlf77=gedit77. Why xlf_r only complains during the 
linkstage and not while compiling I don't know, but this gets rid of the error.

I guess fixing the propagation of link flags in cmake is probably not a good 
idea until the implications are fully understood and not a pressing matter for 
me (anymore).

Thank you for investigating,
Arjen
___
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] incremental build slow because of F90 (cmake_copy_f90_mod)

2010-07-13 Thread Verweij, Arjen
Sent Brad source code to reproduce the bahaviour. Also discovered that the time 
is actually spent in make and not cmake_copy_f90_mod or touch; they are fast.

Regards,
Arjen

PS Attempting to attach log and source code for completeness here as well

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Verweij, Arjen
Sent: maandag 12 juli 2010 20:31
To: Brad King
Cc: cmake@cmake.org
Subject: Re: [CMake] incremental build slow because of F90
(cmake_copy_f90_mod)

Hi Brad,

It's not *supposed* to do that.  Can you produce a minimal project
that reproduces that behavior?

This is reassuring. I'm probably not able to reproduce it with something
small, but I could try. I would imagine that if it's not supposed to do
it, it likely won't :) Apparently, the project has been set up in a
peculiar way causing cmake to require touch  cmake_copyf90_mod.

The current build system has issues with this part of the code as well,
with incremental builds.

Thanks,
Arjen
___
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 version 2.8.1
Usage

  cmake [options] path-to-source
  cmake [options] path-to-existing-build

Options
  -C initial-cache  = Pre-load a script to populate the cache.
  -D var:type=value = Create a cmake cache entry.
  -U globbing_expr  = Remove matching entries from CMake cache.
  -G generator-name = Specify a makefile generator.
  -Wno-dev= Suppress developer warnings.
  -Wdev   = Enable developer warnings.
  -E  = CMake command mode.
  -i  = Run in wizard mode.
  -L[A][H]= List non-advanced cached variables.
  --build dir   = Build a CMake-generated project binary tree.
  -N  = View mode only.
  -P file   = Process script mode.
  --graphviz=[file]   = Generate graphviz of dependencies.
  --system-information [file] = Dump information about this system.
  --debug-trycompile  = Do not delete the try compile directories..
  --debug-output  = Put cmake in a debug mode.
  --trace = Put cmake in trace mode.
  --help-command cmd [file]   = Print help for a single command and exit.
  --help-command-list [file]  = List available listfile commands and exit.
  --help-commands [file]  = Print help for all commands and exit.
  --help-compatcommands [file]= Print help for compatibility commands.
  --help-module module [file] = Print help for a single module and exit.
  --help-module-list [file]   = List available modules and exit.
  --help-modules [file]   = Print help for all modules and exit.
  --help-custom-modules [file]= Print help for all custom modules and exit.
  --help-policy cmp [file]= Print help for a single policy and exit.
  --help-policies [file]  = Print help for all policies and exit.
  --help-property prop [file] = Print help for a single property and exit.
  --help-property-list [file] = List available properties and exit.
  --help-properties [file]= Print help for all properties and exit.
  --help-variable var [file]  = Print help for a single variable and exit.
  --help-variable-list [file] = List documented variables and exit.
  --help-variables [file] = Print help for all variables and exit.
  --copyright [file]  = Print the CMake copyright and exit.
  --help  = Print usage information and exit.
  --help-full [file]  = Print full help and exit.
  --help-html [file]  = Print full help in HTML format.
  --help-man [file]   = Print full help as a UNIX man page and exit.
  --version [file]= Show program name/version banner and exit.

Generators

The following generators are available on this platform:
  Unix Makefiles  = Generates standard UNIX makefiles.
  CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
  Eclipse CDT4 - Unix Makefiles
  = Generates Eclipse CDT 4.0 project files.
  KDevelop3   = Generates KDevelop 3 project files.
  KDevelop3 - Unix Makefiles  = Generates KDevelop 3 project files.



f90example.tgz
Description: f90example.tgz
___
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] incremental build slow because of F90 (cmake_copy_f90_mod)

2010-07-13 Thread Verweij, Arjen
Wrong log.txt :P

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Verweij, Arjen
Sent: dinsdag 13 juli 2010 13:27
To: cmake@cmake.org
Subject: Re: [CMake] incremental build slow because of F90
(cmake_copy_f90_mod)

Sent Brad source code to reproduce the bahaviour. Also discovered that
the time is actually spent in make and not cmake_copy_f90_mod or touch;
they are fast.

Regards,
Arjen

PS Attempting to attach log and source code for completeness here as
well

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On
Behalf Of Verweij, Arjen
Sent: maandag 12 juli 2010 20:31
To: Brad King
Cc: cmake@cmake.org
Subject: Re: [CMake] incremental build slow because of F90
(cmake_copy_f90_mod)

Hi Brad,

It's not *supposed* to do that.  Can you produce a minimal project
that reproduces that behavior?

This is reassuring. I'm probably not able to reproduce it with
something small, but I could try. I would imagine that if it's not
supposed to do it, it likely won't :) Apparently, the project has been
set up in a peculiar way causing cmake to require touch 
cmake_copyf90_mod.

The current build system has issues with this part of the code as well,
with incremental builds.

Thanks,
Arjen
___
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
/usr2/people/verweija/local/bin/cmake -H/mnt/usr3/people/verweija/f90example 
-B/mnt/usr3/people/verweija/build --check-build-system 
CMakeFiles/Makefile.cmake 0
/usr2/people/verweija/local/bin/cmake -E cmake_progress_start 
/mnt/usr3/people/verweija/build/CMakeFiles 
/mnt/usr3/people/verweija/build/CMakeFiles/progress.marks
/usr1/people/maddev/util/bin/make -f CMakeFiles/Makefile2 all
make[1]: Entering directory `/mnt/usr3/people/verweija/build'
/usr1/people/maddev/util/bin/make -f CMakeFiles/mytest.dir/build.make 
CMakeFiles/mytest.dir/depend
make[2]: Entering directory `/mnt/usr3/people/verweija/build'
cd /mnt/usr3/people/verweija/build  /usr2/people/verweija/local/bin/cmake -E 
cmake_depends Unix Makefiles /mnt/usr3/people/verweija/f90example 
/mnt/usr3/people/verweija/f90example /mnt/usr3/people/verweija/build 
/mnt/usr3/people/verweija/build 
/mnt/usr3/people/verweija/build/CMakeFiles/mytest.dir/DependInfo.cmake --color=
make[2]: Leaving directory `/mnt/usr3/people/verweija/build'
/usr1/people/maddev/util/bin/make -f CMakeFiles/mytest.dir/build.make 
CMakeFiles/mytest.dir/requires
make[2]: Entering directory `/mnt/usr3/people/verweija/build'
/usr1/people/maddev/util/bin/make -f CMakeFiles/mytest.dir/build.make 
CMakeFiles/mytest.dir/exec.f90.o.provides.build
make[3]: Entering directory `/mnt/usr3/people/verweija/build'
/usr2/people/verweija/local/bin/cmake -E cmake_copy_f90_mod execute 
CMakeFiles/mytest.dir/execute.mod.stamp
/usr2/people/verweija/local/bin/cmake -E touch 
CMakeFiles/mytest.dir/exec.f90.o.provides.build
make[3]: Leaving directory `/mnt/usr3/people/verweija/build'
/usr1/people/maddev/util/bin/make -f CMakeFiles/mytest.dir/build.make 
CMakeFiles/mytest.dir/init.f90.o.provides.build
make[3]: Entering directory `/mnt/usr3/people/verweija/build'
/usr2/people/verweija/local/bin/cmake -E cmake_copy_f90_mod initialize 
CMakeFiles/mytest.dir/initialize.mod.stamp
/usr2/people/verweija/local/bin/cmake -E touch 
CMakeFiles/mytest.dir/init.f90.o.provides.build
make[3]: Leaving directory `/mnt/usr3/people/verweija/build'
/usr1/people/maddev/util/bin/make -f CMakeFiles/mytest.dir/build.make 
CMakeFiles/mytest.dir/output.f90.o.provides.build
make[3]: Entering directory `/mnt/usr3/people/verweija/build'
/usr2/people/verweija/local/bin/cmake -E cmake_copy_f90_mod output 
CMakeFiles/mytest.dir/output.mod.stamp
/usr2/people/verweija/local/bin/cmake -E touch 
CMakeFiles/mytest.dir/output.f90.o.provides.build
make[3]: Leaving directory `/mnt/usr3/people/verweija/build'
make[2]: Leaving directory `/mnt/usr3/people/verweija/build'
/usr1/people/maddev/util/bin/make -f CMakeFiles/mytest.dir/build.make 
CMakeFiles/mytest.dir/build
make[2]: Entering directory `/mnt/usr3/people/verweija/build'
/usr2/people/verweija/local/bin/cmake -E cmake_copy_f90_mod execute 
CMakeFiles/mytest.dir/execute.mod.stamp
/usr2/people/verweija/local/bin/cmake -E touch 
CMakeFiles/mytest.dir/exec.f90.o.provides.build
/usr2/people/verweija/local/bin/cmake -E cmake_copy_f90_mod initialize 
CMakeFiles/mytest.dir/initialize.mod.stamp
/usr2/people/verweija/local/bin/cmake -E touch 
CMakeFiles/mytest.dir/init.f90.o.provides.build
/usr2/people/verweija/local/bin/cmake -E cmake_copy_f90_mod output 
CMakeFiles/mytest.dir/output.mod.stamp
/usr2/people/verweija/local/bin/cmake -E touch 
CMakeFiles/mytest.dir/output.f90.o.provides.build

[CMake] incremental build slow because of F90 (cmake_copy_f90_mod)

2010-07-12 Thread Verweij, Arjen
Hi,

We're finding incremental builds to be slow, because the F90 source seems to be 
privy to a processing step known as cmake_copy_f90_mod.

While cmake and the compiler race through C/CXX/Fortran(77) source, this is not 
the case for F90. What does cmake_copy_f90_mod do? I can hardly find any 
documentation for it :)
Are there workarounds that may decrease time spent in this area during 
incremental compiles?

Thanks,
Arjen

Arjen Verweij
QA/Test Engineer

[cid:image001.gif@01CB21C7.4E698DA0]


Einsteinlaan 6
2289 CC  Rijswijk
The Netherlands

Phone:  +31 88 827 7086
Fax:   +31 88 827 7003
Email:  arjen.verw...@tass-safe.com
www.tass-safe.com

This e-mail and its contents are subject to a DISCLAIMER with important 
RESERVATIONS.



inline: image001.gif___
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] CMAKE_LANG_FLAGS added to link rule

2010-07-12 Thread Verweij, Arjen
Hi,

It seems that in our project the contents of CMAKE_LANG_FLAGS is added to the 
link line. This causes problems for some of our platforms. Is there a mechanism 
to separate language specific compile and link flags out? It would be nice if 
you could define CMAKE_LANG_COMPILER_FLAGS and CMAKE_LANG_LINK_FLAGS 
separately.

I could write a wrapper around add_executable() and add_library() but I would 
prefer something standard. Looking at 
cmake-2.8.1/Modules/CMakeFortranInformation.cmake, I can't really find much 
except that CMAKE_Fortran_LINK_EXECUTABLE is set, but CMAKE_Fortran_FLAGS are 
not included.

Regards,
Arjen


Arjen Verweij
QA/Test Engineer

[cid:image001.gif@01CB21E8.0002BDA0]


Einsteinlaan 6
2289 CC  Rijswijk
The Netherlands

Phone:  +31 88 827 7086
Fax:   +31 88 827 7003
Email:  arjen.verw...@tass-safe.com
www.tass-safe.com

This e-mail and its contents are subject to a DISCLAIMER with important 
RESERVATIONS.



inline: image001.gif___
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_LANG_FLAGS added to link rule

2010-07-12 Thread Verweij, Arjen
As a follow-up: redefining CMAKE_Fortran_LINK_EXECUTABLE to not include FLAGS 
gets rid of the CMAKE_Fortran_FLAGS.. but perhaps other (useful) stuff as well? 
As a sidetrack I'm starting to wonder what the purpose of CMAKE_LANG_FLAGS 
is. The book lists it as cmake's counterpart of the environment variable, e.g. 
CMAKE_CXX_FLAGS and CXXFLAGS from the shell, which means it doesn't make sense 
to include it when linking. Am I overlooking something here :)

Regards,
Arjen

From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of 
Verweij, Arjen
Sent: maandag 12 juli 2010 18:13
To: cmake@cmake.org
Subject: [CMake] CMAKE_LANG_FLAGS added to link rule

Hi,

It seems that in our project the contents of CMAKE_LANG_FLAGS is added to the 
link line. This causes problems for some of our platforms. Is there a mechanism 
to separate language specific compile and link flags out? It would be nice if 
you could define CMAKE_LANG_COMPILER_FLAGS and CMAKE_LANG_LINK_FLAGS 
separately.

I could write a wrapper around add_executable() and add_library() but I would 
prefer something standard. Looking at 
cmake-2.8.1/Modules/CMakeFortranInformation.cmake, I can't really find much 
except that CMAKE_Fortran_LINK_EXECUTABLE is set, but CMAKE_Fortran_FLAGS are 
not included.

Regards,
Arjen


Arjen Verweij
QA/Test Engineer

[cid:image001.gif@01CB21F5.056CED80]


Einsteinlaan 6
2289 CC  Rijswijk
The Netherlands

Phone:  +31 88 827 7086
Fax:   +31 88 827 7003
Email:  arjen.verw...@tass-safe.com
www.tass-safe.com

This e-mail and its contents are subject to a DISCLAIMER with important 
RESERVATIONS.



inline: image001.gif___
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] incremental build slow because of F90 (cmake_copy_f90_mod)

2010-07-12 Thread Verweij, Arjen
Hi Brad,

Actually the copy-f90-mod step is a *feature* to make incremental
rebuilds faster.  It is an optimization for the case that the .f90
source file that provides a module gets recompiled but the *interface*
to the module does not change.  Many compilers update the timestamp
on the .mod file anyway.  In this case we do not want all the sources
that use the module to recompile needlessly.  The copy-f90-mod step
copies the .mod file to a module timestamp file in a way that does
not modify the timestamp unless the module really changed.

Cmake_copy_f90_mod gets called every time I type make for (as far as I can 
tell) every F90 file that provides a module. So for instance I change a comment 
in my main.f, the compile and linktime for the executable (4000 ish files) NOT 
including the time spent in the F90 portion of the tree is 5 seconds, but the 
F90 part takes a minute.

I don't see any recompiling going on for the F90 part. Does cmake_copy_f90_mod 
get called even if you don't have to compile any F90 files?

Thanks,
Arjen
___
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_LANG_FLAGS added to link rule

2010-07-12 Thread Verweij, Arjen
Brad,

Can you comment on what other stuff ends up in FLAGS? If it's just 
CMAKE_LANG_FLAGS, I guess redefining CMAKE_LANG_LINK_EXECUTABLE would be a 
viable workaround.

Thanks,
Arjen

-Original Message-
From: Brad King [mailto:brad.k...@kitware.com]
Sent: maandag 12 juli 2010 19:20
To: Verweij, Arjen
Cc: cmake@cmake.org
Subject: Re: [CMake] CMAKE_LANG_FLAGS added to link rule

On 07/12/2010 01:12 PM, Verweij, Arjen wrote:
 As a follow-up: redefining CMAKE_Fortran_LINK_EXECUTABLE to not
include
 FLAGS gets rid of the CMAKE_Fortran_FLAGS.. but perhaps other
(useful)
 stuff as well? As a sidetrack I'm starting to wonder what the purpose
of
 CMAKE_LANG_FLAGS is. The book lists it as cmake's counterpart of the
 environment variable, e.g. CMAKE_CXX_FLAGS and CXXFLAGS from the
shell,
 which means it doesn't make sense to include it when linking. Am I
 overlooking something here J

AFAIK no one designed it this way, it just happened over time during
development.  My guess is that people wanted compile flags like -m64
to be passed when the compiler is used as a front-end to the linker.
Since it's been in the default rules for years we cannot change it
without breaking compatibility.

All of this was developed before CMake supported Fortran.  I've seen
very few C and C++ compilers that do not accept/ignore all of their
compiler flags even when used as a linking front-end.  That's likely
why this wasn't caught at the beginning.

-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] incremental build slow because of F90 (cmake_copy_f90_mod)

2010-07-12 Thread Verweij, Arjen
Hi Brad,

It's not *supposed* to do that.  Can you produce a minimal project
that reproduces that behavior?

This is reassuring. I'm probably not able to reproduce it with something small, 
but I could try. I would imagine that if it's not supposed to do it, it likely 
won't :) Apparently, the project has been set up in a peculiar way causing 
cmake to require touch  cmake_copyf90_mod.

The current build system has issues with this part of the code as well, with 
incremental builds.

Thanks,
Arjen 
___
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_LANG_FLAGS added to link rule

2010-07-12 Thread Verweij, Arjen
Brad,

That sounds fine, I'm already in the habit of specifying link flags per 
language anyway. In fact I will take a looksie and recompile cmake with your 
suggested fix.

Regards,
Arjen

Looking at the implementation I see it gets architecture flags on
the Mac (-arch and -isysroot), which is consistent with the -m64
type flags I mentioned before.  However it looks to me like things
have been refactored enough to simply move these into the link-only
flags with a one-line change.  The change would not solve the original
problem but would enable your workaround.

Bill?

-Brad


diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx
b/Source/cmMakefileExecutableTargetGenerator.cxx
index 93c981a..cb41e74 100644
--- a/Source/cmMakefileExecutableTargetGenerator.cxx
+++ b/Source/cmMakefileExecutableTargetGenerator.cxx
@@ -229,7 +229,7 @@ void
cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
   // Add language feature flags.
   this-AddFeatureFlags(flags, linkLanguage);

-  this-LocalGenerator-AddArchitectureFlags(flags, this-Target,
+  this-LocalGenerator-AddArchitectureFlags(linkFlags, this-Target,
  linkLanguage, this-
ConfigName);

   // Add target-specific linker flags.
___
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_LANG_FLAGS added to link rule

2010-07-12 Thread Verweij, Arjen
Brad,

That bit of code is #IFDEF'ed for __APPLE__. I doubt it is causing the problem 
on AIX.

Regards,
Arjen

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Verweij, Arjen
Sent: maandag 12 juli 2010 20:47
To: Brad King
Cc: cmake@cmake.org; Bill Hoffman
Subject: Re: [CMake] CMAKE_LANG_FLAGS added to link rule

Brad,

That sounds fine, I'm already in the habit of specifying link flags per
language anyway. In fact I will take a looksie and recompile cmake with
your suggested fix.

Regards,
Arjen

Looking at the implementation I see it gets architecture flags on
the Mac (-arch and -isysroot), which is consistent with the -m64
type flags I mentioned before.  However it looks to me like things
have been refactored enough to simply move these into the link-only
flags with a one-line change.  The change would not solve the original
problem but would enable your workaround.

Bill?

-Brad


diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx
b/Source/cmMakefileExecutableTargetGenerator.cxx
index 93c981a..cb41e74 100644
--- a/Source/cmMakefileExecutableTargetGenerator.cxx
+++ b/Source/cmMakefileExecutableTargetGenerator.cxx
@@ -229,7 +229,7 @@ void
cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
   // Add language feature flags.
   this-AddFeatureFlags(flags, linkLanguage);

-  this-LocalGenerator-AddArchitectureFlags(flags, this-Target,
+  this-LocalGenerator-AddArchitectureFlags(linkFlags, this-Target,
  linkLanguage, this-
ConfigName);

   // Add target-specific linker flags.
___
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] problems with creating static library on aix

2010-07-07 Thread Verweij, Arjen
Hi,

Apparently it had to do with the setting for ncargs. Increasing it to 256 
(blocks of 4K) solved it.

Regards,
Arjen

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Verweij, Arjen
Sent: dinsdag 6 juli 2010 18:55
To: cmake@cmake.org
Subject: [CMake] problems with creating static library on aix

Hi,

We're experiencing two problems with creating static libraries through
cmake on our AIX system.

The first one is that a cmake based build environment will come up with
64-bit XCOFF, but ar and friends won't play ball unless you add -X64. I
suppose this issue has just been overlooked and is in fact minor.

The other problem is that even though I have added the below workaround
referenced in a thread from July '08, ar cr will choke on the amount
or objects I'm feeding it. I'm sure this is a problem with the ar itself
and not cmake, but I would be interested to learn of a possible
workaround. It works fine for smaller archives.

Thanks,
Arjen

SET(CMAKE_C_ARCHIVE_CREATE CMAKE_AR -X64 cr TARGET LINK_FLAGS
OBJECTS)
SET(CMAKE_C_ARCHIVE_APPEND CMAKE_AR -X64 r  TARGET LINK_FLAGS
OBJECTS)
SET(CMAKE_C_ARCHIVE_FINISH CMAKE_RANLIB -X64 TARGET)
SET(CMAKE_CXX_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
SET(CMAKE_CXX_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
SET(CMAKE_CXX_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})
SET(CMAKE_Fortran_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
SET(CMAKE_Fortran_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
SET(CMAKE_Fortran_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})
___
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] problems with creating static library on aix

2010-07-06 Thread Verweij, Arjen
Hi,

We're experiencing two problems with creating static libraries through cmake on 
our AIX system.

The first one is that a cmake based build environment will come up with 64-bit 
XCOFF, but ar and friends won't play ball unless you add -X64. I suppose this 
issue has just been overlooked and is in fact minor.

The other problem is that even though I have added the below workaround 
referenced in a thread from July '08, ar cr will choke on the amount or 
objects I'm feeding it. I'm sure this is a problem with the ar itself and not 
cmake, but I would be interested to learn of a possible workaround. It works 
fine for smaller archives.

Thanks,
Arjen

SET(CMAKE_C_ARCHIVE_CREATE CMAKE_AR -X64 cr TARGET LINK_FLAGS OBJECTS)
SET(CMAKE_C_ARCHIVE_APPEND CMAKE_AR -X64 r  TARGET LINK_FLAGS OBJECTS)
SET(CMAKE_C_ARCHIVE_FINISH CMAKE_RANLIB -X64 TARGET)
SET(CMAKE_CXX_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
SET(CMAKE_CXX_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
SET(CMAKE_CXX_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})
SET(CMAKE_Fortran_ARCHIVE_CREATE ${CMAKE_C_ARCHIVE_CREATE})
SET(CMAKE_Fortran_ARCHIVE_APPEND ${CMAKE_C_ARCHIVE_APPEND})
SET(CMAKE_Fortran_ARCHIVE_FINISH ${CMAKE_C_ARCHIVE_FINISH})
___
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] pgf90 error

2010-03-30 Thread Verweij, Arjen
Hi,

Sorry for reviving this, but I've read it and I didn't understand. Will some 
version of 2.8.x clear this flag on Linux when the compiler is pgf90 or is this 
now a documented feature for which you need to clear the flags manually?

For the record, when using pgf90 you also need to clear 
CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS since it is set to whatever is in 
CMAKE_SHARED_LIBRARY_LINK_C_FLAGS if it isn't set.

Regards,
Arjen

From: cmake-boun...@cmake.org [cmake-boun...@cmake.org] On Behalf Of Brad King 
[brad.k...@kitware.com]

Brad King wrote:
 John Vines (CISD/CIV) wrote:
   pgf90-Error-Unknown switch: -rdynamic

 Due to some historic cruft this compiler is not supported on Linux right now.
 In Modules/Platform/Linux.cmake comment out the line

   SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS -rdynamic)

 This is on our TODO list for 2.8.x but we didn't want to mess with the
 widely used Linux.cmake platform file just before the 2.8.0 release.

http://www.cmake.org/Bug/view.php?id=9985
___
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] pgf90: influencing link flags for the binary

2010-03-30 Thread Verweij, Arjen
Hi,

After clearing a lot of FLAGS, the final link rule for my executable has been 
reduced to something that resembles what is being used to link it with the 
current make system.

But I still want to get rid of some other stuff like -lpgc and -lnspgc. Is 
there a possibility to influence this as well?

Thanks,
Arjen
___
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] pgf90: influencing link flags for the binary

2010-03-30 Thread Verweij, Arjen
Never mind, it's CMAKE_XXX_IMPLICIT_LINK_LIBRARIES.

Regards,
Arjen

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Verweij, Arjen
Sent: dinsdag 30 maart 2010 16:02
To: cmake@cmake.org
Subject: [CMake] pgf90: influencing link flags for the binary

Hi,

After clearing a lot of FLAGS, the final link rule for my executable has
been reduced to something that resembles what is being used to link it
with the current make system.

But I still want to get rid of some other stuff like -lpgc and -lnspgc.
Is there a possibility to influence this as well?

Thanks,
Arjen
___
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] How to run shell command in CMakeLists.txt

2010-03-29 Thread Verweij, Arjen
Hi,

 Please guide me how to create one static lib from multiple static
libs.

 Can I use ar -x libname and then again make ar from the *.o files?
 Is there any other way?
 --
 Thanks  Regards,
 Kiran Patil

Don't even try. Create the single static lib in the first place. There
has been a long discussion about this just recently, refer to that for
more info (please read to the end, there were some dependency problems
in the posted solutions):
http://marc.info/?l=cmakem=126841136518109w=2

Also note (as I am finding out) that cmake doesn't really seem suitable to 
develop binaries in this fashion. Previously we would create a new binary with 
the preexisting stuff and just put a new object file in the link rule for the 
binary. That was pretty fast. Now cmake takes care of these things, and this no 
longer is an option. So you may want to consider creating a shared objects 
version for your developers.

Regards,
Arjen
___
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] static library from several subdirectories

2010-03-25 Thread Verweij, Arjen
Hi Markus,

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Markus Raab


I have exactly the same problem, please share if you get a good
solution.

Any luck yet? I think we got it nailed so far, but now it needs to refactoring 
and reusage of common code. Once it has been cleaned up it could be in the FAQ 
I guess, until cmake supports it like Hendrik proposed it ;)

Regards,
Arjen
___
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] Nice handling of code coverage option?

2010-03-25 Thread Verweij, Arjen
Hi Brad,

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Brad Hards


Any comments or suggestions on this?


We use gcov and lcov for our C++ code. I think you should take care to make 
sure you have the same version gcov as gcc/g++. Also I think you get better 
results if you compile using -O0. Optimization will confuse the postprocessing.

Like you we have a special config option in the build system for it.

Regards,
Arjen
___
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] Nice handling of code coverage option?

2010-03-25 Thread Verweij, Arjen
Hi Brad,

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Brad Hards


Do you have something else?

Not really, but I don't build debug either (no -g). I don't know about an iron 
clad way to prevent cmake from optimizing anything, so I just use verbose 
makefiles and log the build output. The default for gcc is -O0, so if the log 
is spotless (i.e. no -O) I assume I'm in the clear. I think you can use 
--coverage for both building and linking btw. But no matter, you've already 
typed it out :)

Regards,
Arjen
___
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] scope of set_source_files_properties?

2010-03-23 Thread Verweij, Arjen
Hi,

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Simmons, Aaron


All the sources are going into a single *library*.  I could make a bunch
of static libraries corresponding to each folder, but I'm not sure how
to subsequently link all them into a single static library.  (It's been
mentioned elsewhere on this list, but the answer was vague.)

For our Fortran code, we're currently migrating from Makefiles and RCS to SVN 
and CMake. It is apparent that CMake and static libraries over more than a 
single source directory don't play nice. Fortunately Michael Wild was nice 
enough to type it out for the inadvertent cmake user.

Also, we ran into the problem referenced in this thread, where the source flags 
that were overridden mysteriously disappeared. Sometimes, inside the source 
(mostly Fortran) are compiler flags differing from the default that need to 
be set, as well as openmp statements. So instead of setting the source flags in 
the local directory, we're now going to set it from the top level target, and 
wrap the functionality in a my_add_library() that will parse the source list, 
look for override cmake files, set the overrides for the particular file and 
THEN add the library. Easy as pie.

At any rate, it seems like a rather elaborate workaround...

I agree. But linking is really expensive, so I'm seriously considering making a 
customer version (also for innight testing) and a development version that will 
use shared objects so you don't have to link a tonne of objects everytime you 
changed a source file. Previously, we would have source and binaries sit in a 
shared directory, and the make system would just link the updated object again 
the already existing binary, to keep it fast. Of course this has drawbacks, but 
I'm looking for something equally fast and I don't think I will achieve it 
without going to an .so model for the subcomponents.

If only there were a function like add_objects() that would provide you with 
targets to be used further along the line, eh :) But I guess this usage really 
is a corner case and not used much.

Regards,
Arjen


___
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] scope of set_source_files_properties?

2010-03-23 Thread Verweij, Arjen
Hi,

-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On 
Behalf Of Hendrik Sattler


 That's a convenience library approach, and it's not really 
 supported (partly because there is no way to implement it on some 
 toolchains
such
 as MSVC).

The problem comes up once in a while. And the argument for why this 
doesn't work is that you cannot link static libraries into another. 
Well, then don't, I'd say. CMake knows the names of the object files to 
link into the final library, it just needs a frame to let the CMake 
user work with it. One could be a VIRTUAL key word for add_library that 
makes it just a place-holder for a group of object files: no link 
stage. When such a library is linked to another, well... obvious...

Yes please! :) It would make my life much easier.

Regards,
Arjen
___
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] static library from several subdirectories

2010-03-22 Thread Verweij, Arjen
Hi,

From: Michael Wild [mailto:them...@gmail.com]

 You have to call ADD_SOURCES for all your sources BEFORE you do the
 ADD_LIBRARY call.

 I am already doing this, but since the files I was adding to the
library didn't exist, the call failed. I somehow expected cmake to start
executing the custom command since there was a previously defined
dependency, but apparently cmake wasn't set up for the way I'm
mistreating it :)

 What triggers a custom command to be executed? With your help I have
arrived at:


You should add a DEPENDS input_file1 input_file2 ... option to
your ADD_CUSTOM_COMMAND calls, then CMake will know when to invoke it,
otherwise it can't know anything about the dependency.

Alright. I have spent a considerable amount of time experimenting, rewriting 
and testing. I have reduced my problem to hello world inside a hello.cr file. 
add_sources() has been molested and reduced to a mere shadow of its former 
glory. With or without DEPENDS doesn't change matters, although I'm sure 
without is bad form. Layout:

CMakeLists.txt (code below)
h -- CMakeLists.txt (it just calls add_sources() -- without any arguments)
| -- hello.cr (your typical hello world)

So, when I call add_sources() directly from the top level CMakeLists.txt file, 
I obtain my executable test. If I comment out the add_sources() call, and use 
add_subdirectory(h) instead, and call add_sources() from there, it fails. The 
complaint is that it cannot find source file hello.c Apparently the problem 
is that add_custom_command() calls are local to the directory they are called 
in, and since the executable is assembled from a list on a higher level, it 
expects to find the source file on disc already :(

PROJECT(Test)
enable_language( C )
cmake_minimum_required(VERSION 2.8)

function (add_sources)
define_property(GLOBAL PROPERTY list BRIEF_DOCS brief FULL_DOCS full)

SET ( out_file /mnt/usr3/people/verweija/cmake2/build/h/hello.c )
SET ( in_file /mnt/usr3/people/verweija/cmake2/h/hello.cr )

ADD_CUSTOM_COMMAND(
OUTPUT ${out_file}
COMMAND ${CMAKE_COMMAND} -E copy ${in_file} ${out_file}
DEPENDS /mnt/usr3/people/verweija/cmake2/h/hello.cr
)

LIST( APPEND mylist ${out_file}  )

set_property(GLOBAL APPEND PROPERTY list ${mylist})
endfunction(add_sources)

add_sources()
#add_subdirectory( h )

get_property(list GLOBAL PROPERTY list)
message ( STATUS list=${list} )
ADD_EXECUTABLE( test ${list} )

I have found some threads about this, and I will be reading them shortly :)

Regards,
Arjen

___
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] static library from several subdirectories

2010-03-22 Thread Verweij, Arjen
Hi,

-Original Message-
From: Michael Wild [mailto:them...@gmail.com]


Problem is the following:

Dependencies between stuff in different directories only work for top-
level targets (add_library, add_executable and add_custom_target). So,
you would need to add a ADD_CUSTOM_TARGET call with a unique target name
in your ADD_SOURCES function, add that name to a global list (as you do
with the sources) and then after your ADD_EXECUTABLE call you have to do
an ADD_DEPENDENCIES. Further, you need to tell CMake at the top-level
that the sources are generated by setting the source file property
GENERATED to TRUE.

OK. Indeed, we found it was possible to create an empty target, adding 
subdirectories, obtaining the global src list, adding a library based on the 
src list for which source file properties were set to GENERATED 1 and adding a 
dependency between the lib and the custom target worked. add_sources() was 
modified to add local custom targets and add dependencies to the top level 
target on the fly. 

This is in the cmake wiki and it seems rather hackish, but against better 
judgement we moulded it a bit anyway ;) 
http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_add_a_dependency_to_a_source_file_which_is_generated_in_a_subdirectory.3F


All very complicated and error prone. So I suggest, you move the whole
logic of your preprocessing to your top-level CMakeLists.txt file.


Thanks. I would much prefer something clean like that, although I think that 
wrapping the entire process in add_Sources() has reduced the chances of errors. 
I'm looking to make the CMakeLists.txt files as readable as possible, and 
offloading the functionality to a functions.cmake file, or so. The lib builds 
now, hopefully I can assemble the binary tomorrow. :)

When it gets to the top level target, make chokes somewhat, but I guess that's 
to be expected, I'll see tomorrow about make -j x.

Thanks Michael.

Regards,
Arjen
___
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] static library from several subdirectories

2010-03-19 Thread Verweij, Arjen
Hi,

-Original Message-
From: Michael Wild [mailto:them...@gmail.com]


I'd recommend to change the add_sources function to do all the
preprocessing and then only add the products (.f, .f90, .c etc.) files
to the list. You can do the preprocessing like this (of course, you'll
have to change things for your setup, perhaps even do different things
depending on filename extension etc.)

find_program(FPP_EXECUTABLE fpp)
if(NOT FPP_EXECUTABLE)
  message(SEND_ERROR Failed to find fpp)
endif()

set(SRCS)
foreach(src IN LISTS ARGN)
  get_filename_component(abs_src ${src} ABSOLUTE)
  file(RELATIVE_PATH rel_src ${CMAKE_CURRENT_SOURCE_DIR} ${abs_src})
  set(pre ${CMAKE_CURRENT_BINARY_DIR}/${rel_src})
  add_custom_command(OUTPUT ${pre}
COMMAND ${FPP_EXECUTABLE} ${abs_src} -o ${pre}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT Creating ${pre}
VERBATIM
)
  list(APPEND SRCS ${pre})
endforeach()
set_property(GLOBAL APPEND PROPERTY ${target}_SRCS ${SRCS})

OK, so I finally found some time to implement AND email the results. I tried it 
a little differently, then I tried Michael's approach. Both seem to fail, since 
at the moment I call add_library() my source file is unavailable. I hoped it 
would resolve the source file to a dependency through the custom command, but 
it doesn't and I can't get cmake to execute the conversion inline.

What am I missing? I'm trying again with my simple a/liba.c and b/b/libb.c 
setup, but this time I start out with liba.cr and libb.cr that need to be 
converted to liba.c and libb.c.

function(add_sources target)
  # define the target_SRCS properties if necessary
  get_property(prop_defined GLOBAL PROPERTY ${target}_SRCS DEFINED)
  if(NOT prop_defined)
define_property(GLOBAL PROPERTY ${target}_SRCS
  BRIEF_DOCS Sources for the ${target} target
  FULL_DOCS List of source files for the ${target} target)
  endif()
  # create list of sources (absolute paths)
  set(SRCS)
  foreach(src IN LISTS ARGN)
string (REGEX REPLACE ^(.+)\\.cr$ \\1 BASECR ${src} )
string (COMPARE EQUAL ${src} ${BASECR}.cr FILE_IS_C)
if(NOT IS_ABSOLUTE ${src})
  get_filename_component(path_to_src ${src} ABSOLUTE )
  get_filename_component(path_to_src ${path_to_src} PATH )
  get_filename_component(src ${src} ABSOLUTE)
endif()
add_custom_command(
  OUTPUT ${path_to_src}/${BASECR}.c
  COMMAND cat ${path_to_src}/${BASECR}.cr  ${path_to_src}/${BASECR}.c
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  COMMENT Creating ${path_to_src}/${BASECR}.c
  VERBATIM
  )

#add_custom_command (
#  OUTPUT ${path_to_src}/${BASECR}.c
#  COMMAND cat ${path_to_src}/${BASECR}.cr  ${path_to_src}/${BASECR}.c
#  DEPENDS ${path_to_src}/${BASECR}.cr
#  )
list(APPEND SRCS ${path_to_src}/${BASECR}.c)
  endforeach()
  # append to global property
  set_property(GLOBAL APPEND PROPERTY ${target}_SRCS ${SRCS})
endfunction()
___
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] static library from several subdirectories

2010-03-19 Thread Verweij, Arjen
Hi,

This is a bit length, sorry.

-Original Message-
From: Michael Wild [mailto:them...@gmail.com]


 What am I missing? I'm trying again with my simple a/liba.c and
b/b/libb.c setup, but this time I start out with liba.cr and libb.cr
that need to be converted to liba.c and libb.c.

 function(add_sources target)
  # define the target_SRCS properties if necessary
  get_property(prop_defined GLOBAL PROPERTY ${target}_SRCS DEFINED)
  if(NOT prop_defined)
define_property(GLOBAL PROPERTY ${target}_SRCS
  BRIEF_DOCS Sources for the ${target} target
  FULL_DOCS List of source files for the ${target} target)
  endif()
  # create list of sources (absolute paths)
  set(SRCS)
  foreach(src IN LISTS ARGN)

I know I used this syntax, but it is relatively new. Please check that
it is supported by the CMake version you use...

I'm using cmake 2.8.0 on linux. But eventually it should run on a variety of 
platforms, including windows, altix, ibm and hpux itanium2.

string (REGEX REPLACE ^(.+)\\.cr$ \\1 BASECR ${src} )
string (COMPARE EQUAL ${src} ${BASECR}.cr FILE_IS_C)

You're removing .cr from the file and then add it back again and compare
it with the original name? that should always be TRUE, right?

Yes. But only if the file in ${src} is of the extension .cr. It is a crude way 
of setting up an identifier for a filetype, then matching if that filetype is 
set and do a custom command based on that, e.g.:

foreach (FILE ${FILE_LIST})
string (REGEX REPLACE ^(.+)\\.fr$ \\1 BASEFR ${FILE})
string (REGEX REPLACE ^(.+)\\.f90r$ \\1 BASEF90R ${FILE})
string (REGEX REPLACE ^(.+)\\.cr$ \\1 BASECR ${FILE})
string (REGEX REPLACE ^(.+)\\.cppr$ \\1 BASECPPR ${FILE})
string (REGEX REPLACE ^(.+)\\.hr$ \\1 BASEHR ${FILE})
string (COMPARE EQUAL ${FILE} ${BASEFR}.fr FILE_IS_FORTRAN)
string (COMPARE EQUAL ${FILE} ${BASEF90R}.f90r FILE_IS_FORTRAN90)
string (COMPARE EQUAL ${FILE} ${BASECR}.cr FILE_IS_C)
string (COMPARE EQUAL ${FILE} ${BASECPPR}.cppr FILE_IS_CPP)
string (COMPARE EQUAL ${FILE} ${BASEHR}.hr FILE_IS_HEADER)
if ($FILE_IS_...)
  add_custom_command( ... )
  # append to file list
  # some macro
Elseif ( ... )
...
Else ( ... )
#foreach

if(NOT IS_ABSOLUTE ${src})
  get_filename_component(path_to_src ${src} ABSOLUTE )
  get_filename_component(path_to_src ${path_to_src} PATH )
  get_filename_component(src ${src} ABSOLUTE)
endif()

This is dangerous, because if src is originally absolute, path_to_src
will be undefined! Change it to this:

if(NOT IS_ABSOLUTE ${src})
  get_filename_component(src ${src} ABSOLUTE)
endif()
get_filename_component(path_to_src ${src} PATH)

OK, that would be bad. Thanks for the pointer. I was trying to obtain a handle 
to a file in the same directory as my unprocessed source, so I could add it 
there. I will look into it using your next pointer.

You should NEVER write to the source directory. Don't even think about
it. And output-redirection doesn't work. So for your test-purposes, you
could try:

file(RELATIVE_PATH rel_path_to_src ${CMAKE_CURRENT_SOURCE_DIR}
${path_to_src})
set(out_file
${CMAKE_CURRENT_BINARY_DIR}/${rel_path_to_src}/${BASECR}.c)
add_custom_command(
  OUTPUT ${out_file}
  COMMAND ${CMAKE_COMMAND} -E copy ${src} ${out_file}
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  COMMENT Creating ${out_file}
  VERBATIM
  )

Understood. I was told this before by someone else. Thanks for reminding me.


#add_custom_command (
#  OUTPUT ${path_to_src}/${BASECR}.c
#  COMMAND cat ${path_to_src}/${BASECR}.cr 
${path_to_src}/${BASECR}.c
#  DEPENDS ${path_to_src}/${BASECR}.cr
#  )
list(APPEND SRCS ${path_to_src}/${BASECR}.c)

Of course, change this then to

list(APPEND SRCS ${out_file})

  endforeach()
  # append to global property
  set_property(GLOBAL APPEND PROPERTY ${target}_SRCS ${SRCS})
 endfunction()


OK.

You have to call ADD_SOURCES for all your sources BEFORE you do the
ADD_LIBRARY call.

I am already doing this, but since the files I was adding to the library didn't 
exist, the call failed. I somehow expected cmake to start executing the custom 
command since there was a previously defined dependency, but apparently cmake 
wasn't set up for the way I'm mistreating it :)

What triggers a custom command to be executed? With your help I have arrived at:

project(superDuper Fortran)
enable_language( C )
cmake_minimum_required(VERSION 2.8)
#- Add sources for a target
#
#  ADD_SOURCES(target source1 [source2 ...])
#
function(add_sources target)
  # define the target_SRCS properties if necessary
  get_property(prop_defined GLOBAL PROPERTY ${target}_SRCS DEFINED)
  if(NOT prop_defined)
define_property(GLOBAL PROPERTY ${target}_SRCS
  BRIEF_DOCS Sources for the ${target} target
  FULL_DOCS List of source files for the ${target} target)
  endif()
  # create list of sources (absolute paths)
  set(SRCS)
  foreach(src IN LISTS ARGN)
string (REGEX 

Re: [CMake] static library from several subdirectories

2010-03-17 Thread Verweij, Arjen
Hi,

From: Michael Wild [mailto:them...@gmail.com]

I'd recommend to change the add_sources function to do all the
preprocessing and then only add the products (.f, .f90, .c etc.) files
to the list. You can do the preprocessing like this (of course, you'll
have to change things for your setup, perhaps even do different things
depending on filename extension etc.)

find_program(FPP_EXECUTABLE fpp)
if(NOT FPP_EXECUTABLE)
  message(SEND_ERROR Failed to find fpp)
endif()

set(SRCS)
foreach(src IN LISTS ARGN)
  get_filename_component(abs_src ${src} ABSOLUTE)
  file(RELATIVE_PATH rel_src ${CMAKE_CURRENT_SOURCE_DIR} ${abs_src})
  set(pre ${CMAKE_CURRENT_BINARY_DIR}/${rel_src})
  add_custom_command(OUTPUT ${pre}
COMMAND ${FPP_EXECUTABLE} ${abs_src} -o ${pre}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT Creating ${pre}
VERBATIM
)
  list(APPEND SRCS ${pre})
endforeach()
set_property(GLOBAL APPEND PROPERTY ${target}_SRCS ${SRCS})

The flow currently is:
# build mybiglib.a

- loop over a file list retrieved from a leaf cmake file
- determine the file type (FORTRAN FORTRAN90 C C++ header file etc etc)
- add_custom_command that creates a DEPENDS of the required OUTPUT source file 
based on its source*r file based on a COMMAND.
- add the OUTPUT to a filelist_m or filelist_h if is is a header file
- setup a FORTRAN module directory in ${CMAKE_BINARY_DIR}
- add a dependency between the header files and the current dir for 
preprocessing
- ADD_SOURCES( ${BIG_LIB} ${filelist_m} ) # Michael's code
- process some out of tree include directories # this requires touching up, but 
seems to work in the old setup
- add them as a dependency for biglib
- add a dependency between biglib and the current dir preprocessing target
- call include_directories() for every out of tree include directory

The calls that are failing are:
- add_dependencies (${BIG_LIB} ${P1TARGET}_preprocessing) (2x)
- add_dependencies (${BIG_LIB} ${CUR_DIR}_preprocessing)

The context is:

# use one mod dir per CMAKE_BINARY_DIR instead of a single mod dir per 
CMAKE_CURRENT_BINARY_DIR
# FIXME there may be a problem with duplicate names for the modules -- 
check with development
set (CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/mod)
add_custom_target (${CUR_DIR}_preprocessing DEPENDS ${FILE_LIST_H})
ADD_SOURCES( ${BIG_LIB} ${FILE_LIST_M} )
message ( STATUS filelist_m=${FILE_LIST_M} )
# refactor later
foreach (IDIR ${INCLUDE_DIRECTORIES_PREPRO})
include_directories (${CMAKE_BINARY_DIR}/${IDIR})
string (REPLACE / _ PTARGET ${IDIR})
string (REGEX REPLACE ^(.+)_$ \\1 P1TARGET ${PTARGET})

add_dependencies (${BIG_LIB} ${P1TARGET}_preprocessing) #fails now
endforeach (IDIR)
add_dependencies (${BIG_LIB} ${CUR_DIR}_preprocessing) #fails now

foreach (IDIR ${INCLUDE_DIRECTORIES})
include_directories (${IDIR})
endforeach (IDIR)


I'll be looking into this some more at the end of the day.

Regards,
Arjen

___
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] static library from several subdirectories

2010-03-17 Thread Verweij, Arjen
Hi,

-Original Message-
From: Michael Wild [mailto:them...@gmail.com]


I think the problem is that the ${BIG_LIB} target does not exist when
you call ADD_DEPENDENCIES. Probably you should also collect all the
custom targets into a global property and then after the
ADD_LIBRARY(${BIG_LIB} ...) do the ADD_DEPENDENCIES call.

Woops. Indeed so, before the dependency was added after add_library() was 
called to create a target for the ${CMAKE_CURRENT_BINARY_DIR} -- add_library() 
has now made way for add_sources(). I think I will assemble these dependencies 
globally as well. Thanks again.

PS: Sorry about my last message which was a bit messy (missing
dependency stuff, wrong output name etc). My only apology is that it was
still early in the morning ;-)

Agreed, it was so early, you probably didn't even had coffee yet ;) Still, it's 
much appreciated, no need to apologise at all.

Regards,
Arjen
___
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] static library from several subdirectories

2010-03-16 Thread Verweij, Arjen
Hi,

 Hopefully I'm misunderstanding you, since otherwise the list would
contain
 close to 4000 files.

Well, I don't see a real problem with this. If this makes your files too
long,
just separate the setting of these source-variables into separate files.

I would prefer to keep the source listing with the source files, so perhaps I 
should chain .cmake files from the level where I wish to generate 
mystaticlib.a. That would make maintaining the source lists easier for 
inadvertent users. To clarify, the average Fortran77 user (mathematician, 
physicist, structural engineer etc.) I know usually does not have a computer 
science background, so usability is a relative big issue.

 But I took a look at Michael Wild's approach (thanks Tyler) which
leads me
 to believe there is no clean way to go about it. I suppose in the
spirit of
 his solution I could create a global list of the archives I obtain,
and
 feed them to target_link_libraries (myexecutable
 ${my_global_list_of_archives}) in the same scope where I call
 add_executable().

If you are creating an executable (I thought you were creating a static
library as end result), you can just link your executable against all
these
static libs.

I am. Well, it's complicated. We provide one big archive to link against, so 
the core of the program is inside the binary when they define their own 
routines. There is no point in making it a shared object since it is never 
shared. Most users will just use the binary we provide.

It just seems that cmake was set up with a different mindset, in which it is 
frowned upon to create a single library (static or not) composed of multiple 
source directories. I will try to wrap something around add_subdirectory() and 
have my_add_subdirectory() take care of propagation of the (127 :) source lists 
to the parent scope, so I can get a list for add_library(). If that fails 
perhaps just be satisfied with referencing all source lists explicitly from the 
top... Any other suggestions very welcome.

Thanks,
Arjen
___
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] static library from several subdirectories

2010-03-16 Thread Verweij, Arjen
Hi Markus,

I have tested Michael's suggestion. It works wonders for combining source files 
into a single lib, regardless of the directory levels. For instance, I tested 
with:

CMakeLists.txt
a/CMakeLists.txt
a/liba.c
b/CMakeLists.txt
b/b/CMakeLists.txt
b/b/libb.c

Just keep add_subdirectory()'ing until you can add_sources( yourlib [sources] 
). So if you have FORTRAN source, you should be done.

I don't have FORTRAN source, but .fr .f90r .cppr .cr .hr files that need to be 
preprocessed with fpp to obtain the resulting .f .f90 .cpp .c .h files, which 
can be used in add_sources(). This seem to cause problems with the setup I had 
so far, since I get the error:

  add_dependencies Adding dependency to non-existent target: bar3d
You have called ADD_LIBRARY for library madymo3d without any source files. This 
typically indicates a problem with your CMakeLists.txt file

If I manage to solve it I will report back here.

Regards,
Arjen


-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf
Of Markus Raab
Sent: dinsdag 16 maart 2010 17:43
To: cmake@cmake.org
Subject: Re: [CMake] static library from several subdirectories

Verweij, Arjen wrote:

 I'm looking for a cmake-way to create a static library from several
 subdirectories.

I have exactly the same problem, please share if you get a good
solution.

What about collecting all files in a cache variable? Then you could add
files per directory, but with a global scope. Could that work?

I would really like to avoid to have them all listed in a file. cmake
was
the tool of choice, exactly because I want to get rid of a single
configure.ac. This is important because folders might be excluded
depending
on options or available libraries.

thank you
Markus

--
http://www.markus-raab.org | Die Geschichte lehrt dauernd, aber sie
  -o)  | findet keine Schüler.  -- Dr. Ingeborg
Kernel 2.6.24-1-a  /\  | Bachmann
on a x86_64   _\_v |

___
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] static library from several subdirectories

2010-03-12 Thread Verweij, Arjen
Hi,

For a legacy FORTRAN project, I'm looking for a cmake-way to create a static 
library from several subdirectories. The current solution is using a custom 
POST_BUILD step with ar and ranlib, but the resulting archive is not known to 
cmake and can't be used to link to the main.

As an alternative we've tried to propagate the list of archives using 
PARENT_SCOPE, but this seems like a hack as well. Is there a clean way to go 
about it?

Regards,
Arjen
___
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] static library from several subdirectories

2010-03-12 Thread Verweij, Arjen
Hi,

 For a legacy FORTRAN project, I'm looking for a cmake-way to create a
 static library from several subdirectories. The current solution is
using a
 custom POST_BUILD step with ar and ranlib, but the resulting archive
is not
 known to cmake and can't be used to link to the main.

You can just list all source files in the top level CMakeLists.txt, no
matter
whether they are in a subdirectory or in the same directory.

Alex

Hopefully I'm misunderstanding you, since otherwise the list would contain 
close to 4000 files.

But I took a look at Michael Wild's approach (thanks Tyler) which leads me to 
believe there is no clean way to go about it. I suppose in the spirit of his 
solution I could create a global list of the archives I obtain, and feed them 
to target_link_libraries (myexecutable ${my_global_list_of_archives}) in the 
same scope where I call add_executable().

Arjen

___
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] ctest with cmake without compiler

2009-02-09 Thread Verweij, Arjen
Hi,

Yes, it certainly disables some checks. Thanks for the pointer.

However, on an NT system without Visual Studio for instance, but with
nmake.exe (or make.exe of msys), I still cannot have cmake generate
Makefiles:

$ cmake .
CMake Error: CMake was unable to find a build program corresponding to
Visual Studio 6.  CMAKE_MAKE_PROGRAM is not set.  You probably need to
select a different build tool.
-- Configuring incomplete, errors occurred!

The CMakeFiles directory is mostly empty except for cmake.check_cache
which only contains comments.

What I want, is to be able to deploy a tarball or an installer, install
some test tools, and test the binaries that were provided in a clean
environment, like a virtual machine. Testing on build machines is
undesirable. Setting CMAKE_MAKE_PROGRAM to (n)make.exe does not help.

Regards,

Arjen

| Verweij, Arjen wrote:
|  Well, obviously the problem is requiring a compiler when it makes no

|  sense. Like on test-only systems.
| 
| 
| Not that obvious
| 
| project(FooBar NONE)
| 
| That will stop CMake from enabling any compilers or languages.
___
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 with cmake without compiler

2009-02-04 Thread Verweij, Arjen
Hi,

I'm looking for the switch that kills the compiler check in cmake. Is
there such a switch?

Through Google I found
http://www.mail-archive.com/cmake@cmake.org/msg08245.html but the answer
is not in there.

Regards,

Arjen

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] ctest with cmake without compiler

2009-02-04 Thread Verweij, Arjen
Well, obviously the problem is requiring a compiler when it makes no sense. 
Like on test-only systems.

Arjen



From: cmake-boun...@cmake.org on behalf of Alexander Neundorf
Sent: Wed 2/4/2009 7:49 PM
To: cmake@cmake.org
Subject: Re: [CMake] ctest with cmake without compiler



On Wednesday 04 February 2009, Verweij, Arjen wrote:
 Hi,

 I'm looking for the switch that kills the compiler check in cmake. Is
 there such a switch?

Which problem do you have with the check ?
It should work.

Alex
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake