Re: [osg-users] Wrong CMake output directory using Visual - half submission

2010-10-25 Thread Sukender
Hi Chuck,

Your point of view joins mine. Thanks for clarification.

Be careful however: you wrote *_DEBUG and *_RELEASE. This is half true, because 
CMake has 4 configurations by default, and users can change them. So if I 
rename Release to Zrolbgluck (or add this new configuration), you'll have 
to write *_ZROLBGLUCK. Hence the FOREACH() loop I wrote in my previous email, 
which does the job fo every defined configuration.

I'll make a sumbissions this morning I guess/hope.

Cheers,

Sukender
PVLE - Lightweight cross-platform game engine - http://pvle.sourceforge.net/

- Chuck Seberino seber...@energid.org a écrit :

 Sukender,
 
 
 It is indeed related to CMake = 2.8.1. I have had success setting all
 configuration types including the generic one, which seems to work on
 Linux, OSX and Windows. So:
 
 
 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR})
 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${OUTPUT_LIBDIR})
 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${OUTPUT_LIBDIR})
 
 
 That way it works with older and newer versions of CMake. Older
 versions don't know/use/ignore the specific configuration types and
 newer CMake uses the most specific setting.
 
 
 The conditional below I use for other situations. It works for me
 since I am simply checking against previous versions:
 
 # CMake = 2.8.1 changed the output directory algorithm...
 if (CMAKE_CONFIGURATION_TYPES AND NOT APPLE)
 if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND
 (${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} LESS 8.1))
 #Perform 'old' CMake method.
 # ...
 endif ()
 endif ()
 
 
 HTH
 
 
 Chuck Seberino
 
 
 
 
 
 
 On Oct 22, 2010, at 11:13 AM, Sukender wrote:
 
 
 
 Hi Robert, hi all,
 
 I spotted the binaries are not in /bin as usual with my new config
 (CMake 2.8.2, VS2010 x64), but in /bin/Debug and /bin/Release.
 I think CMake 2.8.2 is the cause because the usual way to work around
 these subdirs should not work anymore (SET_TARGET_PROPERTIES(Target
 PROPERTIES PREFIX ../)). I found a way to make it work properly.
 However I don't post it as a submussion because I didn't test it as it
 should (not tested under Linux), and I guess we must write some
 versionning code (if cmake version is below x.y.z...). Here is my
 code, to be put in the root CMakeLists.txt:
 
 Instead of using
 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR})
 and such, use:
 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG ${OUTPUT_LIBDIR})
 
 So the code should look like:
 
 FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES})
 STRING(TOUPPER ${CONF} CONF)
 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_LIBDIR})
 SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_BINDIR})
 IF(WIN32)
 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_BINDIR})
 ELSE()
 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_LIBDIR})
 ENDIF()
 ENDFOREACH()
 
 
 Hope someone will take a few minutes to write a nice CMake script (and
 figure out the version number from which this can bu used, if this is
 really 100% CMake related)
 Cheers,
 
 Sukender
 PVLE - Lightweight cross-platform game engine -
 http://pvle.sourceforge.net/
 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
 
 
 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Wrong CMake output directory using Visual - half submission

2010-10-22 Thread Sukender
Hi Robert, hi all,

I spotted the binaries are not in /bin as usual with my new config (CMake 
2.8.2, VS2010 x64), but in /bin/Debug and /bin/Release.
I think CMake 2.8.2 is the cause because the usual way to work around these 
subdirs should not work anymore (SET_TARGET_PROPERTIES(Target PROPERTIES 
PREFIX ../)). I found a way to make it work properly. However I don't post it 
as a submussion because I didn't test it as it should (not tested under Linux), 
and I guess we must write some versionning code (if cmake version is below 
x.y.z...). Here is my code, to be put in the root CMakeLists.txt:

Instead of using
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR})
and such, use:
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG ${OUTPUT_LIBDIR})

So the code should look like:

FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES})
STRING(TOUPPER ${CONF} CONF)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_LIBDIR})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_BINDIR})
IF(WIN32)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_BINDIR})
ELSE()
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_LIBDIR})
ENDIF()
ENDFOREACH()


Hope someone will take a few minutes to write a nice CMake script (and figure 
out the version number from which this can bu used, if this is really 100% 
CMake related)
Cheers,

Sukender
PVLE - Lightweight cross-platform game engine - http://pvle.sourceforge.net/
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Wrong CMake output directory using Visual - half submission

2010-10-22 Thread Chuck Seberino
Sukender,

It is indeed related to CMake = 2.8.1.  I have had success setting all 
configuration types including the generic one, which seems to work on Linux, 
OSX and Windows.  So:

SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR})
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${OUTPUT_LIBDIR})
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG   ${OUTPUT_LIBDIR})

That way it works with older and newer versions of CMake.  Older versions don't 
know/use/ignore the specific configuration types and newer CMake uses the most 
specific setting.

The conditional below I use for other situations.  It works for me since I am 
simply checking against previous versions:

# CMake = 2.8.1 changed the output directory algorithm...
if (CMAKE_CONFIGURATION_TYPES AND NOT APPLE)
if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND 
(${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} LESS 8.1))
#Perform 'old' CMake method.
# ...
endif ()
endif ()

HTH

Chuck Seberino


On Oct 22, 2010, at 11:13 AM, Sukender wrote:

 Hi Robert, hi all,
 
 I spotted the binaries are not in /bin as usual with my new config (CMake 
 2.8.2, VS2010 x64), but in /bin/Debug and /bin/Release.
 I think CMake 2.8.2 is the cause because the usual way to work around these 
 subdirs should not work anymore (SET_TARGET_PROPERTIES(Target PROPERTIES 
 PREFIX ../)). I found a way to make it work properly. However I don't post 
 it as a submussion because I didn't test it as it should (not tested under 
 Linux), and I guess we must write some versionning code (if cmake version is 
 below x.y.z...). Here is my code, to be put in the root CMakeLists.txt:
 
 Instead of using
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR})
 and such, use:
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG ${OUTPUT_LIBDIR})
 
 So the code should look like:
 
 FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES})
   STRING(TOUPPER ${CONF} CONF)
   SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_LIBDIR})
   SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_BINDIR})
   IF(WIN32)
   SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_BINDIR})
   ELSE()
   SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF} ${OUTPUT_LIBDIR})
   ENDIF()
 ENDFOREACH()
 
 
 Hope someone will take a few minutes to write a nice CMake script (and figure 
 out the version number from which this can bu used, if this is really 100% 
 CMake related)
 Cheers,
 
 Sukender
 PVLE - Lightweight cross-platform game engine - http://pvle.sourceforge.net/
 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org