cmake_minimum_required( VERSION 2.8 ) project( VAMatlab ) list( APPEND CMAKE_MODULE_PATH "$ENV{VISTA_CMAKE_COMMON}" ) include( VistaCommon ) if( NOT DEFINED ITA_VA_MATLAB_BUILD_WITH_INTERNAL_CORE ) set( ITA_VA_MATLAB_BUILD_WITH_INTERNAL_CORE OFF CACHE BOOL "Build a VACore into VAMatlab instead of using a network adapter (not recommended)" ) endif( NOT DEFINED ITA_VA_MATLAB_BUILD_WITH_INTERNAL_CORE ) if( NOT DEFINED ITA_VAMATLAB_VERSION_MAJOR ) set( ITA_VAMATLAB_VERSION_MAJOR "v2017" CACHE STRING "VAMatlab version major (usually 'v' and year)" ) endif( NOT DEFINED ITA_VAMATLAB_VERSION_MAJOR ) if( NOT DEFINED ITA_VAMATLAB_VERSION_MINOR ) set( ITA_VAMATLAB_VERSION_MINOR "a" CACHE STRING "VAMatlab version minor (usually a,b,c ...)" ) endif( NOT DEFINED ITA_VAMATLAB_VERSION_MINOR ) if( NOT DEFINED ITA_VAMATLAB_SHOW_BANNER ) set( ITA_VAMATLAB_SHOW_BANNER ON CACHE BOOL "Show VA banner on Matlab init" ) endif( NOT DEFINED ITA_VAMATLAB_SHOW_BANNER ) vista_use_package( VABase REQUIRED FIND_DEPENDENCIES ) vista_use_package( VANet REQUIRED FIND_DEPENDENCIES ) vista_use_package( Matlab REQUIRED FIND_DEPENDENCIES ) vista_use_package( NatNetSDK REQUIRED FIND_DEPENDENCIES ) # Compiler if( ITA_CORE_LIBS_BUILD_STATIC ) add_definitions( -DITA_BASE_STATIC -DITA_DATA_SOURCES_STATIC -DITA_DIFFRACTION_STATIC -DITA_GEO_STATIC -DITA_CONVOLUTION_STATIC -DITA_FFT_STATIC -DITA_CTC_STATIC -DITA_SAMPLER_STATIC ) endif( ) if( ITA_VISTA_BUILD_STATIC ) add_definitions( -DVISTABASE_STATIC -DVISTAMATH_STATIC -DVISTAASPECTS_STATIC -DVISTATOOLS_STATIC -DVISTAINTERPROCCOMM_STATIC ) endif( ) if( BUILD_SHARED_LIBS ) add_definitions( -DVAMATLAB_EXPORTS ) else( ) add_definitions( -DVABASE_STATIC -DVANET_STATIC ) endif( ) if( ITA_VA_MATLAB_BUILD_WITH_INTERNAL_CORE ) vista_use_package( VACore REQUIRED FIND_DEPENDENCIES ) add_definitions( -DVAMATLAB_INTERNAL_CORE ) endif( ) add_definitions( "-DVAMATLAB_VERSION_MAJOR=\"${ITA_VAMATLAB_VERSION_MAJOR}\"" ) add_definitions( "-DVAMATLAB_VERSION_MINOR=\"${ITA_VAMATLAB_VERSION_MINOR}\"" ) if( ITA_VAMATLAB_SHOW_BANNER ) add_definitions( "-DVAMATLAB_SHOW_BANNER" ) endif( ) # Sources set( VAMATLAB_SRC "src/VAMatlabFunctionMapping.h" "src/VAMatlabHelpers.h" "src/VAMatlabHelpers.cpp" "src/VAMatlabConnection.cpp" "src/VAMatlabConnection.h" "src/VAMatlabExecutable.cpp" "src/VAMatlabTracking.h" "src/VAMatlabTracking.cpp" ) message( ${VAMATLAB_SRC} ) add_library( VAMatlab ${VAMATLAB_SRC} VAMatlab.def ) target_link_libraries( VAMatlab ${VISTA_USE_PACKAGE_LIBRARIES} ) if( ITA_VA_INSTALL_WITH_DLLS ) vista_install_all_dlls( bin ) endif( ) vista_configure_lib( VAMatlab ) vista_install( VAMatlab ) vista_create_default_info_file( VAMatlab ) vista_create_cmake_configs( VAMatlab ) set_property( TARGET VAMatlab PROPERTY FOLDER "VA/Bindings" ) set_target_properties( VAMatlab PROPERTIES SUFFIX ".${MATLAB_MEX_EXTENSION}") # VA matlab scripts file set( VAMATLAB_DEPLOY_DIR "${CMAKE_INSTALL_PREFIX}/bin" ) set( VAMATLAB_SCRIPT_DIR "${CMAKE_INSTALL_PREFIX}/matlab" ) set( VAMATLAB_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" ) configure_file( "matlab/itaVA_build.m.proto" "${CMAKE_CURRENT_SOURCE_DIR}/matlab/itaVA_build.m" @ONLY )