Use CMAKE to change working directory to Octave binary directory before compiling Octave plugins. This way dependent libraries are found without manipulating path.

p4#: 19006
This commit is contained in:
Magne Sjaastad
2012-10-03 14:53:51 +02:00
parent 9c1ce7591e
commit 2e9f842072

View File

@@ -24,7 +24,8 @@ if(NOT MKOCTFILE_EXECUTABLE)
message(WARNING "Failed to find mkoctfile")
else()
get_filename_component(OCTAVE_PATH ${MKOCTFILE_EXECUTABLE} PATH)
# Get path to Octave binary directory to be able to build .oct files if Octave is not in path
get_filename_component(OCTAVE_PATH ${MKOCTFILE_EXECUTABLE} PATH)
foreach(srcFileName IN LISTS CPP_SOURCES)
@@ -35,22 +36,17 @@ else()
get_filename_component(baseFilename "${srcFileName}" NAME_WE)
set(octFileName "${CMAKE_CURRENT_BINARY_DIR}/${baseFilename}.oct")
add_custom_command(
add_custom_command(
OUTPUT "${octFileName}"
COMMAND ${MKOCTFILE_EXECUTABLE} -I${QT_QTNETWORK_INCLUDE_DIR} -I${QT_QTCORE_INCLUDE_DIR} -I${QT_INCLUDE_DIR} ${RPATH_COMMAND} -L${QT_LIBRARY_DIR} -lQtCore${QT_LIBRARY_POSTFIX} -lQtNetwork${QT_LIBRARY_POSTFIX} -o "${octFileName}" "${srcFileName}"
COMMAND ${CMAKE_COMMAND} ARGS -E chdir ${OCTAVE_PATH} ${MKOCTFILE_EXECUTABLE} -I${QT_QTNETWORK_INCLUDE_DIR} -I${QT_QTCORE_INCLUDE_DIR} -I${QT_INCLUDE_DIR} ${RPATH_COMMAND} -L${QT_LIBRARY_DIR} -lQtCore${QT_LIBRARY_POSTFIX} -lQtNetwork${QT_LIBRARY_POSTFIX} -o "${octFileName}" "${srcFileName}"
DEPENDS "${srcFileName}"
COMMENT "Generating ${octFileName}"
WORKING_DIRECTORY "${OCTAVE_PATH}"
)
list(APPEND OCTAVE_BINARY_OCT_FILES "${octFileName}")
list(APPEND OCTAVE_BINARY_OCT_FILES "${octFileName}")
endforeach()
#add_custom_target(oct-files ALL DEPENDS "${OCTAVE_BINARY_OCT_FILES}")
add_custom_target(octave_plugins ALL DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/riGetActiveCellProperty.oct"
"${CMAKE_CURRENT_BINARY_DIR}/riSetActiveCellProperty.oct"