[CMake] LIBRARY_OUTPUT_PATH - CMAKE_LIBRARY_OUTPUT_DIRECTORY

Michael Jackson mike.jackson at bluequartz.net
Mon Nov 30 09:32:53 EST 2009


John,
   I actually have this same problem with a ParaView plugin that I am  
developing. I have the following in the plugin's CMakeLists.txt file  
( where MXA_OUTPUT_DIRS_DEFINED _is_ defined in the before the  
CMakeLists.txt is included via an 'add_subdirectory()' command from  
the MXADataModelParaViewImport.cmake file.

#--------------------------------------------------------------
if ( NOT MXA_OUTPUT_DIRS_DEFINED )
# ---------- Setup output Directories -------------------------
SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY
   ${PROJECT_BINARY_DIR}/Bin
   CACHE PATH
   "Single Directory for all Libraries"
   )

# --------- Setup the Executable output Directory -------------
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY
   ${PROJECT_BINARY_DIR}/Bin
   CACHE PATH
   "Single Directory for all Executables."
   )

# --------- Setup the Executable output Directory -------------
SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
   ${PROJECT_BINARY_DIR}/Bin
   CACHE PATH
   "Single Directory for all static libraries."
   )
endif()
if (NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
     set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
endif()

if (NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
     set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
endif()

if (NOT DEFINED EXECUTABLE_OUTPUT_PATH)
   set (EXECUTABLE_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif()

if (NOT DEFINED LIBRARY_OUTPUT_PATH)
   set (LIBRARY_OUTPUT_PATH ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
endif()
#--------------------------------------------------------------

Maybe this can be used in the

_________________________________________________________
Mike Jackson                  mike.jackson at bluequartz.net
BlueQuartz Software                    www.bluequartz.net
Principal Software Engineer                  Dayton, Ohio

On Nov 30, 2009, at 4:14 AM, Biddiscombe, John A. wrote:

> I am in the process of switching the hdf5 library used by paraview  
> from the older 1.6.x to the newer 1.8.x and I encountered a problem  
> caused by the fact that the new variable
> CMAKE_LIBRARY_OUTPUT_DIRECTORY
> is set by hdf1.8.x when included in the paraview main project - and  
> it overrides the LIBRARY_OUTPUT_PATH set by paraview (also,  
> executable/archive dirs etc), causing all the directories to be  
> wrong in the main paraview build.
>
> A quick fix is to set CMAKE_LIBRARY_OUTPUT_DIRECTORY/etc in the  
> paraview cmakelists, but my question is
>
> Is is safe for me to essentially do a search/replace on all
> LIBRARY_OUTPUT_PATH and replace with CMAKE_LIBRARY_OUTPUT_DIRECTORY
> in all cmakelists files in paraview (or any other project for  
> example).
>
> By which I mean, is there any real functional difference, or is it  
> just a name change?
>
> thanks
>
> JB
>
> -- 
> John Biddiscombe,                            email:biddisco @ cscs.ch
> http://www.cscs.ch/
> CSCS, Swiss National Supercomputing Centre  | Tel:  +41 (91) 610.82.07
> Via Cantonale, 6928 Manno, Switzerland      | Fax:  +41 (91) 610.82.82
>



More information about the CMake mailing list