cmake_minimum_required( VERSION 2.8 ) if( NOT VA_COMMON_BUILD ) project( VAMatlab ) list( APPEND CMAKE_MODULE_PATH "$ENV{VISTA_CMAKE_COMMON}" ) include( VistaCommon ) endif() if( NOT DEFINED ITA_CORE_LIBS_BUILD_STATIC ) set( ITA_CORE_LIBS_BUILD_STATIC OFF CACHE BOOL "Build all ITA core libs in static mode" ) endif( NOT DEFINED ITA_CORE_LIBS_BUILD_STATIC ) if( NOT DEFINED ITA_VISTA_BUILD_STATIC ) set( ITA_VISTA_BUILD_STATIC OFF CACHE BOOL "Build against static ViSTA libraries" ) endif( NOT DEFINED ITA_VISTA_BUILD_STATIC ) if( NOT DEFINED ITA_VA_BUILD_STATIC ) set( ITA_VA_BUILD_STATIC OFF CACHE BOOL "Build static VA libs" ) endif( NOT DEFINED ITA_VA_BUILD_STATIC ) if( NOT DEFINED ITA_VA_MATLAB_INSTALL_WITH_DLLS ) set( ITA_VA_MATLAB_INSTALL_WITH_DLLS ON CACHE BOOL "Install VAMatlab with depending DLLs (use with care)" ) endif( NOT DEFINED ITA_VA_MATLAB_INSTALL_WITH_DLLS ) 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 ) 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 ) # 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( ITA_CORE_LIBS_BUILD_STATIC ) if( ITA_VISTA_BUILD_STATIC ) add_definitions( -DVISTABASE_STATIC -DVISTAMATH_STATIC -DVISTAASPECTS_STATIC -DVISTATOOLS_STATIC -DVISTAINTERPROCCOMM_STATIC ) endif( ITA_VISTA_BUILD_STATIC ) if( NOT ITA_VA_BUILD_STATIC ) add_definitions( -DVAMATLAB_EXPORTS ) else( NOT ITA_VA_BUILD_STATIC ) add_definitions( -DVABASE_STATIC -DVANET_STATIC ) set( BUILD_SHARED_LIBS_TEMP ${BUILD_SHARED_LIBS} ) if( BUILD_SHARED_LIBS ) set( BUILD_SHARED_LIBS OFF ) message( "Ignoring activated BUILD_SHARED_LIBS temporary because static VA requested" ) endif( BUILD_SHARED_LIBS ) endif( NOT ITA_VA_BUILD_STATIC ) if( ITA_VA_MATLAB_BUILD_WITH_INTERNAL_CORE ) vista_use_package( VACore REQUIRED FIND_DEPENDENCIES ) add_definitions( -DVACORE_DLL -DVAMATLAB_INTERNAL_CORE ) endif( ITA_VA_MATLAB_BUILD_WITH_INTERNAL_CORE ) # Sources set( VAMATLAB_SRC "src/FunctionMappings.h" "src/MatlabHelpers.h" "src/MatlabHelpers.cpp" "src/VAMatlabConnection.cpp" "src/VAMatlabConnection.h" "src/VAMatlabExecutable.cpp" "src/VAMatlabTracking.h" "src/VAMatlabTracking.cpp" ) add_library( VAMatlab ${VAMATLAB_SRC} VAMatlab.def ) target_link_libraries( VAMatlab ${VISTA_USE_PACKAGE_LIBRARIES} ) 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/VABindings" ) set_target_properties( VAMatlab PROPERTIES SUFFIX ".${MATLAB_MEX_EXTENSION}") if( ITA_VA_MATLAB_INSTALL_WITH_DLLS OR ITA_VA_INSTALL_WITH_DLLS ) vista_install_all_dlls( bin ) endif() # VA core configuration 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 )