2013-10-16 13:57:48 +02:00
# Some of the functionality in this CMakeLists.txt might be easier to maintain if we use a CMake macro to find configuration info for Octave
# This file is currently (2.8.12) not part of default CMake installation
# See http://www.cmake.org/Wiki/CMakeUserFindOctave
2012-05-18 09:45:23 +02:00
set ( CPP_SOURCES
r i G e t A c t i v e C e l l P r o p e r t y . c p p
r i S e t A c t i v e C e l l P r o p e r t y . c p p
r i G e t A c t i v e C e l l I n f o . c p p
2012-06-26 16:10:41 +02:00
r i G e t M a i n G r i d D i m e n s i o n s . c p p
2013-05-10 14:43:03 +02:00
r i G e t C u r r e n t C a s e . c p p
2013-05-13 21:15:38 +02:00
r i G e t C a s e G r o u p s . c p p
2013-05-13 22:32:01 +02:00
r i G e t S e l e c t e d C a s e s . c p p
2013-05-15 10:51:41 +02:00
r i G e t C a s e s . c p p
2013-05-16 13:43:37 +02:00
r i G e t T i m e S t e p D a t e s . c p p
2013-05-16 14:44:34 +02:00
r i G e t T i m e S t e p D a y s . c p p
2013-05-16 15:16:51 +02:00
r i G e t G r i d D i m e n s i o n s . c p p
2013-05-21 21:03:05 +02:00
r i G e t C o a r s e n i n g I n f o . c p p
2013-05-22 08:11:39 +02:00
r i G e t C e l l C e n t e r s . c p p
2013-05-22 09:54:39 +02:00
r i G e t A c t i v e C e l l C e n t e r s . c p p
2013-05-23 11:02:10 +02:00
r i G e t C e l l C o r n e r s . c p p
r i G e t A c t i v e C e l l C o r n e r s . c p p
2013-05-27 12:22:05 +02:00
r i G e t G r i d P r o p e r t y . c p p
2013-05-28 10:43:32 +02:00
r i S e t G r i d P r o p e r t y . c p p
2013-08-30 15:37:29 +02:00
r i G e t P r o p e r t y N a m e s . c p p
2013-09-04 08:03:11 +02:00
r i G e t W e l l N a m e s . c p p
r i G e t W e l l S t a t u s . c p p
2013-09-04 12:57:36 +02:00
r i G e t W e l l C e l l s . c p p
2012-05-18 09:45:23 +02:00
)
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Linux" )
2013-03-26 22:20:14 +01:00
# since the compiler passes the option to the linker, double quoting is necessary
set ( RPATH_COMMAND "-Wl,-rpath,'\\$$ORIGIN'" )
2012-05-18 09:45:23 +02:00
endif ( )
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Windows" )
set ( QT_LIBRARY_POSTFIX 4 )
2013-10-16 13:57:48 +02:00
if ( CMAKE_CL_64 )
option ( RESINSIGHT_OCTAVE_PLUGIN_32_BIT "Use 32-bit environment for compilation on Windows (mkoctfile and Qt used for Octave must match)" OFF )
endif ( )
2012-05-18 09:45:23 +02:00
endif ( )
2013-10-16 13:57:48 +02:00
# Find location of Octave based on mkoctfile
find_program ( RESINSIGHT_OCTAVE_PLUGIN_MKOCTFILE mkoctfile )
if ( RESINSIGHT_OCTAVE_PLUGIN_MKOCTFILE )
get_filename_component ( RESINSIGHT_OCTAVE_BIN_DIR ${ RESINSIGHT_OCTAVE_PLUGIN_MKOCTFILE } PATH )
STRING ( REPLACE "/bin" "" OCTAVE_HOME ${ RESINSIGHT_OCTAVE_BIN_DIR } )
2012-10-04 12:12:58 +02:00
else ( )
2013-10-16 13:57:48 +02:00
message ( WARNING "Failed to find mkoctfile, no Octave plugins will be compiled. Please specify RESINSIGHT_OCTAVE_PLUGIN_MKOCTFILE" )
2012-10-04 12:12:58 +02:00
endif ( )
2012-05-18 09:45:23 +02:00
2013-10-17 08:10:03 +02:00
find_program ( RESINSIGHT_OCTAVE_PLUGIN_QMAKE NAMES qmake-qt4 qmake )
2013-10-16 13:57:48 +02:00
if ( RESINSIGHT_OCTAVE_PLUGIN_QMAKE )
get_filename_component ( OCTAVE_QMAKE_DIR ${ RESINSIGHT_OCTAVE_PLUGIN_QMAKE } PATH )
STRING ( REPLACE "/bin" "" OCTAVE_QT_ROOT ${ OCTAVE_QMAKE_DIR } )
SET ( OCTAVE_QT_INCLUDE_DIR ${ OCTAVE_QT_ROOT } /include )
SET ( OCTAVE_QT_QTCORE_INCLUDE_DIR ${ OCTAVE_QT_ROOT } /include/QtCore )
SET ( OCTAVE_QT_QTNETWORK_INCLUDE_DIR ${ OCTAVE_QT_ROOT } /include/QtNetwork )
SET ( OCTAVE_QT_LIBRARY_DIR ${ OCTAVE_QT_ROOT } /lib )
2012-05-18 09:45:23 +02:00
else ( )
2013-10-16 13:57:48 +02:00
message ( WARNING "Failed to find Qt to be used to compile Octave plugins, no Octave plugins will be compiled. Please specify RESINSIGHT_OCTAVE_PLUGIN_QMAKE" )
endif ( )
2012-05-18 09:45:23 +02:00
2012-09-20 15:15:43 +02:00
2013-10-16 13:57:48 +02:00
# Clear the list of binary oct files to be produced
set ( OCTAVE_BINARY_OCT_FILES )
2013-10-24 16:03:32 +02:00
if ( RESINSIGHT_OCTAVE_PLUGIN_QMAKE AND RESINSIGHT_OCTAVE_PLUGIN_MKOCTFILE )
foreach ( srcFileName IN LISTS CPP_SOURCES )
2013-10-16 13:57:48 +02:00
2013-10-24 16:03:32 +02:00
if ( NOT IS_ABSOLUTE "${srcFileName}" )
set ( srcFileName "${CMAKE_CURRENT_SOURCE_DIR}/${srcFileName}" )
endif ( )
2013-10-16 13:57:48 +02:00
2013-10-24 16:03:32 +02:00
get_filename_component ( baseFilename "${srcFileName}" NAME_WE )
set ( octFileName "${CMAKE_CURRENT_BINARY_DIR}/${baseFilename}.oct" )
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Windows" )
if ( CMAKE_CL_64 AND RESINSIGHT_OCTAVE_PLUGIN_32_BIT )
# The following line calls the build configuration for x86 VS2010 compiler
# call "\"%VS100COMNTOOLS%../../VC/vcvarsall.bat\"" x86
add_custom_command (
O U T P U T " $ { o c t F i l e N a m e } "
C O M M A N D c a l l " \ " % V S 1 0 0 C O M N T O O L S % . . / . . / V C / v c v a r s a l l . b a t \ " " x 8 6
C O M M A N D $ { C M A K E _ C O M M A N D } A R G S - E c h d i r $ { R E S I N S I G H T _ O C T A V E _ B I N _ D I R } $ { R E S I N S I G H T _ O C T A V E _ P L U G I N _ M K O C T F I L E } - I $ { O C T A V E _ Q T _ Q T N E T W O R K _ I N C L U D E _ D I R }
- I $ { O C T A V E _ Q T _ Q T C O R E _ I N C L U D E _ D I R } - I $ { O C T A V E _ Q T _ I N C L U D E _ D I R } $ { R P A T H _ C O M M A N D }
- L $ { O C T A V E _ Q T _ L I B R A R Y _ D I R } - l Q t C o r e $ { Q T _ L I B R A R Y _ P O S T F I X } - l Q t N e t w o r k $ { Q T _ L I B R A R Y _ P O S T F I X } - o " $ { o c t F i l e N a m e } " " $ { s r c F i l e N a m e } "
D E P E N D S " $ { s r c F i l e N a m e } "
C O M M E N T " = = = > 3 2 - b i t x 8 6 V S 2 0 1 0 : G e n e r a t i n g $ { o c t F i l e N a m e } "
)
else ( )
add_custom_command (
O U T P U T " $ { o c t F i l e N a m e } "
C O M M A N D $ { C M A K E _ C O M M A N D } A R G S - E c h d i r $ { R E S I N S I G H T _ O C T A V E _ B I N _ D I R } $ { R E S I N S I G H T _ O C T A V E _ P L U G I N _ M K O C T F I L E } - I $ { O C T A V E _ Q T _ Q T N E T W O R K _ I N C L U D E _ D I R }
- I $ { O C T A V E _ Q T _ Q T C O R E _ I N C L U D E _ D I R } - I $ { O C T A V E _ Q T _ I N C L U D E _ D I R } $ { R P A T H _ C O M M A N D }
- L $ { O C T A V E _ Q T _ L I B R A R Y _ D I R } - l Q t C o r e $ { Q T _ L I B R A R Y _ P O S T F I X } - l Q t N e t w o r k $ { Q T _ L I B R A R Y _ P O S T F I X } - o " $ { o c t F i l e N a m e } " " $ { s r c F i l e N a m e } "
D E P E N D S " $ { s r c F i l e N a m e } "
C O M M E N T " = = = > G e n e r a t i n g $ { o c t F i l e N a m e } "
)
endif ( )
2012-10-04 12:28:31 +02:00
else ( )
add_custom_command (
O U T P U T " $ { o c t F i l e N a m e } "
2013-10-24 16:03:32 +02:00
C O M M A N D O C T A V E _ H O M E = $ { O C T A V E _ H O M E } $ { R E S I N S I G H T _ O C T A V E _ P L U G I N _ M K O C T F I L E }
- I $ { O C T A V E _ Q T _ Q T N E T W O R K _ I N C L U D E _ D I R } - I $ { O C T A V E _ Q T _ Q T C O R E _ I N C L U D E _ D I R } - I $ { O C T A V E _ Q T _ I N C L U D E _ D I R } $ { R P A T H _ C O M M A N D }
- L $ { O C T A V E _ Q T _ L I B R A R Y _ D I R } - l Q t C o r e - l Q t N e t w o r k - o " $ { o c t F i l e N a m e } " " $ { s r c F i l e N a m e } "
2012-10-04 12:28:31 +02:00
D E P E N D S " $ { s r c F i l e N a m e } "
2013-10-16 13:57:48 +02:00
C O M M E N T " = = = > G e n e r a t i n g $ { o c t F i l e N a m e } "
2012-10-04 12:28:31 +02:00
)
endif ( )
2013-10-24 16:03:32 +02:00
list ( APPEND OCTAVE_BINARY_OCT_FILES "${octFileName}" )
2013-10-16 13:57:48 +02:00
2013-10-24 16:03:32 +02:00
endforeach ( )
2012-05-18 09:45:23 +02:00
2013-10-24 16:03:32 +02:00
add_custom_target ( octave_plugins ALL DEPENDS
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t A c t i v e C e l l P r o p e r t y . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i S e t A c t i v e C e l l P r o p e r t y . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t A c t i v e C e l l I n f o . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t M a i n G r i d D i m e n s i o n s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t C u r r e n t C a s e . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t C a s e G r o u p s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t S e l e c t e d C a s e s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t C a s e s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t T i m e S t e p D a t e s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t T i m e S t e p D a y s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t G r i d D i m e n s i o n s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t C o a r s e n i n g I n f o . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t C e l l C e n t e r s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t A c t i v e C e l l C e n t e r s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t C e l l C o r n e r s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t A c t i v e C e l l C o r n e r s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t G r i d P r o p e r t y . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i S e t G r i d P r o p e r t y . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t P r o p e r t y N a m e s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t W e l l N a m e s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t W e l l S t a t u s . o c t "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / r i G e t W e l l C e l l s . o c t "
S O U R C E S $ { C P P _ S O U R C E S }
)
# Copy Octave generated *.oct files to application folder, will make it possible to use Octave functions
# directly from the location of the ResInsight binaries
if ( true )
foreach ( oct_bin ${ OCTAVE_BINARY_OCT_FILES } )
get_filename_component ( Filename "${oct_bin}" NAME )
if ( MSVC )
add_custom_command ( TARGET octave_plugins POST_BUILD
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y _ i f _ d i f f e r e n t
" $ { o c t _ b i n } "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / . . / A p p l i c a t i o n C o d e / $ < C O N F I G U R A T I O N > / $ { F i l e n a m e } "
)
else ( )
add_custom_command ( TARGET octave_plugins POST_BUILD
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y _ i f _ d i f f e r e n t
" $ { o c t _ b i n } "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / . . / A p p l i c a t i o n C o d e / $ { F i l e n a m e } "
)
endif ( )
endforeach ( oct_bin )
endif ( )
2012-05-18 09:45:23 +02:00
2013-10-24 16:03:32 +02:00
# Make ResInsight dependant on Octave, makes it easiser to debug Octave functionality by compiling ResInsight
add_dependencies ( ResInsight octave_plugins )
if ( RESINSIGHT_PRIVATE_INSTALL )
install ( FILES ${ OCTAVE_BINARY_OCT_FILES } DESTINATION ${ RESINSIGHT_FINAL_NAME } )
else ( RESINSIGHT_PRIVATE_INSTALL )
# probe for site location of .oct files
if ( NOT OCTAVE_SITE_OCT_DIR )
find_program ( OCTAVE_CONFIG_COMMAND
o c t a v e - c o n f i g
D O C " P a t h t o O c t a v e c o m p o n e n t a n d l i b r a r y i n f o r m a t i o n r e t r i e v a l "
)
exec_program ( ${ OCTAVE_CONFIG_COMMAND }
A R G S - - o c t - s i t e - d i r
O U T P U T _ V A R I A B L E O C T A V E _ S I T E _ O C T _ D I R
)
set ( OCTAVE_SITE_OCT_DIR "${OCTAVE_SITE_OCT_DIR}" CACHE LOCATION "Octave plugin directory" )
endif ( NOT OCTAVE_SITE_OCT_DIR )
install ( FILES ${ OCTAVE_BINARY_OCT_FILES }
D E S T I N A T I O N $ { O C T A V E _ S I T E _ O C T _ D I R }
)
endif ( RESINSIGHT_PRIVATE_INSTALL )
endif ( RESINSIGHT_OCTAVE_PLUGIN_QMAKE AND RESINSIGHT_OCTAVE_PLUGIN_MKOCTFILE )
2013-05-13 21:15:38 +02:00