cmake_minimum_required(VERSION 2.8.9)

project (telematics-apps)

# provides install directory variables CMAKE_INSTALL_<dir>
include(GNUInstallDirs)
# pkg-config module
include(FindPkgConfig)

if (MACHINE_HAS_CV2X_ONLY)
    add_definitions(-DFEATURE_CV2X_ONLY)
endif (MACHINE_HAS_CV2X_ONLY)

if (TELUX_FOR_EXTERNAL_AP)
    add_definitions(-DTELUX_FOR_EXTERNAL_AP)
    if (TELUX_QTI_EXTERNAL_AP)
        add_definitions(-DTELUX_QTI_EXTERNAL_AP)
    endif (TELUX_QTI_EXTERNAL_AP)
endif (TELUX_FOR_EXTERNAL_AP)

add_subdirectory( common/console_app_framework )
add_subdirectory( tests/telsdk_console_app )
add_subdirectory( tests/sensor_test_app )
add_subdirectory( tests/thermal_test_app )
add_subdirectory( tests/location_test_app )
add_subdirectory( tests/thermal_shutdown_test_app )
add_subdirectory( reference/chrony-sock)
add_subdirectory( tests/modem_configurator )
add_subdirectory( tests/data_qos_test_app )
add_subdirectory( tests/filesystem_test_app )

pkg_check_modules(PWR_MGR_QMI_LIB powermanagerqmi)

if (PWR_MGR_QMI_LIB_FOUND)
    add_subdirectory( tests/power_test_app )
endif (PWR_MGR_QMI_LIB_FOUND)

# build only if we are not building in bitbake environment
if(BUILD_ALL_REFERENCE)
    add_subdirectory( reference/loc_tracker_app )
endif(BUILD_ALL_REFERENCE)

if(BUILD_ALL_SAMPLES)
    add_subdirectory( samples/phone/make_call_app )
    add_subdirectory( samples/phone/make_ecall_app )
    add_subdirectory( samples/card_services/card_services_app )
    add_subdirectory( samples/sms/receive_sms_app )
    add_subdirectory( samples/sms/send_sms_app )
    add_subdirectory( samples/card_services/simple_sap_api_app )
    add_subdirectory( samples/loc/loc_app )
    add_subdirectory( samples/subscription/subscription_app )
    add_subdirectory( samples/data/data_app )
    add_subdirectory( samples/data/data_profile_app )
    add_subdirectory( samples/phone/network_scan_app )
    add_subdirectory( samples/serving_system/serving_system_app )
    add_subdirectory( samples/thermal/thermal_app )
    add_subdirectory( samples/thermal/thermal_shutdown )
    add_subdirectory( samples/config/modem_config_app )
    add_subdirectory( samples/data/data_filter_app )
    add_subdirectory( samples/data/data_vlan_app )
    add_subdirectory( samples/data/data_dmz_app )
    add_subdirectory( samples/data/data_fwl_enable_app )
    add_subdirectory( samples/data/data_fwl_entry_app )
    add_subdirectory( samples/data/data_snat_app )
    add_subdirectory( samples/data/data_socks_app )
    add_subdirectory( samples/data/data_l2tp_app )
    add_subdirectory( samples/data/data_drb_status_app )
    add_subdirectory( samples/data/data_service_status_app )
    add_subdirectory( samples/data/data_roaming_status_app )
    add_subdirectory( samples/sensor/sensor_app )
    add_subdirectory( samples/sensor/sensor_feature_app )
    add_subdirectory( samples/sensor/sensor_self_test_app )
    add_subdirectory( samples/platform/efs_backup_restore_app )
    add_subdirectory( samples/platform/ota_operations_app )
    add_subdirectory( samples/platform/ecall_operations_app )

    if(NOT MACHINE_HAS_CV2X_ONLY)
        add_subdirectory( samples/audio/voice_session_app )
        add_subdirectory( samples/audio/playback_app )
        add_subdirectory( samples/audio/capture_app )
        add_subdirectory( samples/audio/compressed_fmt_playback_app )
        add_subdirectory( samples/audio/transcoder_app )
        add_subdirectory( samples/audio/in_call_audio_app )
    endif(NOT MACHINE_HAS_CV2X_ONLY)
    if (PWR_MGR_QMI_LIB_FOUND)
        add_subdirectory( samples/power/tcuactivity_sample_app )
    endif (PWR_MGR_QMI_LIB_FOUND)
    if(MACHINE_HAS_CV2X_ONLY OR MACHINE_HAS_CV2X)
        add_subdirectory( samples/cv2x/cv2x_tcp_app )
        add_subdirectory( samples/cv2x/cv2x_tx_report_sample_app )
    endif(MACHINE_HAS_CV2X_ONLY OR MACHINE_HAS_CV2X)
endif(BUILD_ALL_SAMPLES)

if(MACHINE_HAS_CV2X_ONLY OR MACHINE_HAS_CV2X)
    add_subdirectory( samples/cv2x/cv2x_rx_app )
    add_subdirectory( samples/cv2x/cv2x_tx_app )
    add_subdirectory( samples/cv2x/cv2x_get_status_app )
    add_subdirectory( samples/cv2x/cv2x_tx_service_status_app )
    add_subdirectory( tests/cv2x_slss_rx_app)
    add_subdirectory( tests/cv2x_tcp_test )
    add_subdirectory( tests/cv2x_unicast_app)
    add_subdirectory( tests/cv2x_config_app )
    add_subdirectory( tests/cv2x_get_capabilities_app )
    add_subdirectory( tests/cv2x_retrieve_configuration_app )
    add_subdirectory( tests/cv2x_set_tx_power_app)
    add_subdirectory( tests/cv2x_l2_id_filter_app)
    add_subdirectory( tests/cv2x_tx_report_test_app)
    add_subdirectory( reference/rits )
    if (TELUX_QTI_EXTERNAL_AP)
        add_subdirectory(samples/cv2x/cv2x_tm_app)
    endif(TELUX_QTI_EXTERNAL_AP)
endif(MACHINE_HAS_CV2X_ONLY OR MACHINE_HAS_CV2X)

if(NOT MACHINE_HAS_CV2X_ONLY)
    add_subdirectory( reference/remote_sim )
    add_subdirectory( tests/audio_console_app )
    add_subdirectory( tests/audio_loopback_app )
    add_subdirectory( reference/ecall_app )
endif(NOT MACHINE_HAS_CV2X_ONLY)
