Generate setpath.bat to set the paths necessary for running

the generated binaries inside the build dir.

svn path=/trunk/; revision=52492
This commit is contained in:
Jörg Mayer 2013-10-10 13:37:15 +00:00
parent 526f7cf367
commit 36e0adfcc1
2 changed files with 33 additions and 1 deletions

View File

@ -475,6 +475,9 @@ endforeach()
# Provide Windows system lib names
include( UseWinLibs )
# Create file to set paths to run binaries from build dir
WSExtendPath( "${WS_ALL_LIBS}" "${CMAKE_BINARY_DIR}/setpath.bat" )
#packaging
include(CPackConfig.txt)

View File

@ -22,5 +22,34 @@ function(FindWSWinLibs _WS_LIB_SEARCH_PATH _LIB_HINT_VAR)
endif()
endforeach()
endif()
endfunction(FindWSWinLibs)
endfunction()
function(WSExtendPath _LIB_PATH_LIST _PATH_FILE)
if (WIN32)
#message( STATUS "All libs: ${_LIB_PATH_LIST}." )
foreach( THIS_LIB_PATH ${_LIB_PATH_LIST} )
get_filename_component( LIB_PATH ${THIS_LIB_PATH} PATH )
#message( STATUS "Raw path ${THIS_LIB_PATH} processed to ${LIB_PATH}." )
set( WS_LOCAL_LIB_PATHS "${WS_LOCAL_LIB_PATHS}" ${LIB_PATH} )
endforeach()
list( REMOVE_DUPLICATES WS_LOCAL_LIB_PATHS )
# All generated libs go here, so start our libsearch in this place
set( WS_LOCAL_LIB_PATHS "${CMAKE_BINARY_DIR}/lib" "${WS_LOCAL_LIB_PATHS}" )
file( TO_NATIVE_PATH "${WS_LOCAL_LIB_PATHS}" WS_NATIVE_LIB_PATHS )
if ( EXISTS ${_PATH_FILE} )
file( READ ${_PATH_FILE} OLD_FILE_CONTENT )
else()
set( OLD_FILE_CONTENT " " )
endif()
#message( STATUS "Searching for ${WS_NATIVE_LIB_PATHS}\nin ${OLD_FILE_CONTENT}" )
string( FIND "${OLD_FILE_CONTENT}" "${WS_NATIVE_LIB_PATHS}" PATH_FOUND_AT )
#message( STATUS "Location of substr: ${PATH_FOUND_AT}" )
if( PATH_FOUND_AT GREATER -1 )
message( "\n${_PATH_FILE} is up to date.\n" )
else()
#message( STATUS "Native paths: ${WS_NATIVE_LIB_PATHS}" )
file( WRITE ${_PATH_FILE} "set PATH=%PATH%;${WS_NATIVE_LIB_PATHS}" )
message( "\n${_PATH_FILE} is new/updated, please run it.\n" )
endif()
endif()
endfunction()