Skip to content
Snippets Groups Projects
Commit 446e81b1 authored by Julien Malik's avatar Julien Malik
Browse files

ENH: generate helper scripts in the build dir also

parent b384a7e4
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@ endif()
macro(OTB_CREATE_APPLICATION)
OTB_PARSE_ARGUMENTS(
APPLICATION
"NAME;SOURCES;INCLUDE_DIRS;LINK_LIBRARIES;INSTALL_PATH"
"NAME;SOURCES;INCLUDE_DIRS;LINK_LIBRARIES;BUILD_PATH;INSTALL_PATH"
""
${ARGN})
......@@ -33,33 +33,66 @@ macro(OTB_CREATE_APPLICATION)
if (NOT APPLICATION_INSTALL_PATH AND OTB_INSTALL_APP_DIR_CM24)
set(APPLICATION_INSTALL_PATH ${OTB_INSTALL_APP_DIR_CM24})
endif()
# Install only if a path has been provided
if (APPLICATION_INSTALL_PATH)
install(TARGETS ${APPLICATION_TARGET_NAME}
LIBRARY DESTINATION ${APPLICATION_INSTALL_PATH})
if (NOT WIN32)
configure_file( ${CMAKE_SOURCE_DIR}/CMake/otbcli.sh.in
${CMAKE_CURRENT_BINARY_DIR}/otbcli_${APPLICATION_NAME}
@ONLY )
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/otbcli_${APPLICATION_NAME}
DESTINATION ${OTB_INSTALL_BIN_DIR_CM24})
if (WRAP_QT)
configure_file( ${CMAKE_SOURCE_DIR}/CMake/otbgui.sh.in
${CMAKE_CURRENT_BINARY_DIR}/otbgui_${APPLICATION_NAME}
@ONLY )
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/otbgui_${APPLICATION_NAME}
DESTINATION ${OTB_INSTALL_BIN_DIR_CM24})
endif(WRAP_QT)
endif(NOT WIN32)
endif()
# Generate a quickstart script in the build dir
if (NOT WIN32)
# What is the path to the applications
# a MODULE target is always treated as LIBRARY
get_target_property(APPLICATION_BINARY_PATH ${APPLICATION_TARGET_NAME} LIBRARY_OUTPUT_DIRECTORY)
if (NOT APPLICATION_BINARY_PATH)
set(APPLICATION_BINARY_PATH ${CMAKE_CURRENT_BINARY_DIR})
endif()
set(SCRIPT_CLI_SOURCE ${OTB_SOURCE_DIR}/CMake/otbcli_app.sh.in)
if (EXISTS ${SCRIPT_CLI_SOURCE})
# Generate a script in the build dir, next to the cli launcher
configure_file( ${SCRIPT_CLI_SOURCE}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbcli_${APPLICATION_NAME}
@ONLY )
# Copy it next to the application shared lib, and give executable rights
file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbcli_${APPLICATION_NAME}
DESTINATION ${APPLICATION_BINARY_PATH}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
if (APPLICATION_INSTALL_PATH)
# Install a version of this script
install(PROGRAMS ${APPLICATION_BINARY_PATH}/otbcli_${APPLICATION_NAME}
DESTINATION ${APPLICATION_INSTALL_PATH})
endif()
endif()
set(SCRIPT_GUI_SOURCE ${OTB_SOURCE_DIR}/CMake/otbgui_app.sh.in)
if (EXISTS ${SCRIPT_GUI_SOURCE})
# Generate a script in the build dir, next to the cli launcher
configure_file( ${SCRIPT_GUI_SOURCE}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbgui_${APPLICATION_NAME}
@ONLY )
# Copy it next to the application shared lib, and give executable rights
file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbgui_${APPLICATION_NAME}
DESTINATION ${APPLICATION_BINARY_PATH}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
if (APPLICATION_INSTALL_PATH)
# Install a version of this script
install(PROGRAMS ${APPLICATION_BINARY_PATH}/otbgui_${APPLICATION_NAME}
DESTINATION ${APPLICATION_INSTALL_PATH})
endif()
endif()
endif(NOT WIN32)
list(APPEND OTB_APPLICATIONS_NAME_LIST ${APPLICATION_NAME})
set(OTB_APPLICATIONS_NAME_LIST ${OTB_APPLICATIONS_NAME_LIST}
CACHE STRING "List of all applications" FORCE)
endmacro(OTB_CREATE_APPLICATION)
......
......@@ -5,11 +5,31 @@
# DO NOT MODIFY
#
CURRENT_SCRIPT=$0
CURRENT_SCRIPT_DIR=`dirname $0`
OTB_CLI_LAUNCHER=$CURRENT_SCRIPT_DIR/otbApplicationLauncherCommandLine
OTB_APP_PATH=$CURRENT_SCRIPT_DIR/../lib/otb/applications
if [ -e $CURRENT_SCRIPT_DIR/otbApplicationLauncherCommandLine ]
then
# Prefer using the launcher inside the script dir
OTB_CLI_LAUNCHER=$CURRENT_SCRIPT_DIR/otbApplicationLauncherCommandLine
else
# Use the one from the PATH
OTB_CLI_LAUNCHER=otbApplicationLauncherCommandLine
fi
$OTB_CLI_LAUNCHER @APPLICATION_NAME@ $OTB_APP_PATH "$@"
# works for build dir
if [ -d @APPLICATION_BINARY_PATH@ ]
then
ITK_AUTOLOAD_PATH=@APPLICATION_BINARY_PATH@:$ITK_AUTOLOAD_PATH
fi
# works for install tree
if [ -d $CURRENT_SCRIPT_DIR/../@OTB_INSTALL_APP_DIR_CM24@ ]
then
ITK_AUTOLOAD_PATH=$CURRENT_SCRIPT_DIR/../@OTB_INSTALL_APP_DIR_CM24@:$ITK_AUTOLOAD_PATH
fi
# export it to make it available to otbApplicationLauncherCommandLine environment
export ITK_AUTOLOAD_PATH
# start the application
$OTB_CLI_LAUNCHER "$@"
#!/bin/bash
#
# Autogenerated by OTB installation process
# DO NOT MODIFY
#
CURRENT_SCRIPT_DIR=`dirname $0`
if [ -e $CURRENT_SCRIPT_DIR/otbcli ]
then
# Prefer using the launcher inside the script dir
OTB_CLI_LAUNCHER=$CURRENT_SCRIPT_DIR/otbcli
else
# Use the one from the PATH
OTB_CLI_LAUNCHER=otbcli
fi
# start the application
$OTB_CLI_LAUNCHER @APPLICATION_NAME@ "$@"
......@@ -5,11 +5,31 @@
# DO NOT MODIFY
#
CURRENT_SCRIPT=$0
CURRENT_SCRIPT_DIR=`dirname $0`
OTB_GUI_LAUNCHER=$CURRENT_SCRIPT_DIR/otbApplicationLauncherQt
OTB_APP_PATH=$CURRENT_SCRIPT_DIR/../lib/otb/applications
if [ -e $CURRENT_SCRIPT_DIR/otbApplicationLauncherQt ]
then
# Prefer using the launcher inside the script dir
OTB_GUI_LAUNCHER=$CURRENT_SCRIPT_DIR/otbApplicationLauncherQt
else
# Use the one from the PATH
OTB_GUI_LAUNCHER=otbApplicationLauncherQt
fi
$OTB_GUI_LAUNCHER @APPLICATION_NAME@ $OTB_APP_PATH "$@"
# works for build dir
if [ -d @APPLICATION_BINARY_PATH@ ]
then
ITK_AUTOLOAD_PATH=@APPLICATION_BINARY_PATH@:$ITK_AUTOLOAD_PATH
fi
# works for install tree
if [ -d $CURRENT_SCRIPT_DIR/../@OTB_INSTALL_APP_DIR_CM24@ ]
then
ITK_AUTOLOAD_PATH=$CURRENT_SCRIPT_DIR/../@OTB_INSTALL_APP_DIR_CM24@:$ITK_AUTOLOAD_PATH
fi
# export it to make it available to otbApplicationLauncherCommandLine environment
export ITK_AUTOLOAD_PATH
# start the application
$OTB_GUI_LAUNCHER "$@"
#!/bin/bash
#
# Autogenerated by OTB installation process
# DO NOT MODIFY
#
CURRENT_SCRIPT_DIR=`dirname $0`
if [ -e $CURRENT_SCRIPT_DIR/otbcli ]
then
# Prefer using the launcher inside the script dir
OTB_GUI_LAUNCHER=$CURRENT_SCRIPT_DIR/otbgui
else
# Use the one from the PATH
OTB_GUI_LAUNCHER=otbgui
fi
# start the application
$OTB_GUI_LAUNCHER @APPLICATION_NAME@ "$@"
......@@ -15,3 +15,22 @@ install(TARGETS otbApplicationLauncherQt
RUNTIME DESTINATION ${OTB_INSTALL_BIN_DIR_CM24}
LIBRARY DESTINATION ${OTB_INSTALL_LIB_DIR_CM24}
ARCHIVE DESTINATION ${OTB_INSTALL_LIB_DIR_CM24})
# Where we will install the script in the build tree
get_target_property(CLI_OUPUT_DIR otbApplicationLauncherQt RUNTIME_OUTPUT_DIRECTORY)
# What is the path to the applications
# a MODULE target is always treated as LIBRARY
set(APPLICATION_BINARY_PATH ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
# Generate a script in the build dir, next to the cli launcher
# Need a two-step process since configure_file don't support permissions
configure_file( ${CMAKE_SOURCE_DIR}/CMake/otbgui.sh.in
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbgui
@ONLY )
file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbgui
DESTINATION ${CLI_OUPUT_DIR}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(PROGRAMS ${CLI_OUPUT_DIR}/otbgui
DESTINATION ${OTB_INSTALL_BIN_DIR_CM24})
......@@ -27,3 +27,22 @@ install(TARGETS otbApplicationLauncherCommandLine
RUNTIME DESTINATION ${OTB_INSTALL_BIN_DIR_CM24}
LIBRARY DESTINATION ${OTB_INSTALL_LIB_DIR_CM24}
ARCHIVE DESTINATION ${OTB_INSTALL_LIB_DIR_CM24})
# Where we will install the script in the build tree
get_target_property(CLI_OUPUT_DIR otbApplicationLauncherCommandLine RUNTIME_OUTPUT_DIRECTORY)
# What is the path to the applications
# a MODULE target is always treated as LIBRARY
set(APPLICATION_BINARY_PATH ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
# Generate a script in the build dir, next to the cli launcher
# Need a two-step process since configure_file don't support permissions
configure_file( ${CMAKE_SOURCE_DIR}/CMake/otbcli.sh.in
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbcli
@ONLY )
file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbcli
DESTINATION ${CLI_OUPUT_DIR}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(PROGRAMS ${CLI_OUPUT_DIR}/otbcli
DESTINATION ${OTB_INSTALL_BIN_DIR_CM24})
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment