cmake_minimum_required(VERSION 2.6)
project(vendor-ril)

#add complie options
set(CMAKE_COMMON_FLAGS " -D__unused= -Wall -DRIL_SHLIB -D_GNU_SOURCE \
    -DMTK_TELEPHONYWARE_SUPPORT -DMTK_MUX_CHANNEL_64 -DTELEPHONYWARE \
    -DANDROID_SIM_COUNT_2 -DANDROID_MULTI_SIM -DMODE_DSSS -D__linux__\
    -D__IMCF_MTK_VA__=1 -D__IMCF_NO_UA__=1 ")

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_COMMON_FLAGS} -std=c99 -Wl,--no-undefined")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_COMMON_FLAGS} -std=gnu++14 -Wl,--no-undefined")

#add header files (-I -L)
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../hardware/ril/libratconfig/include/")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../hardware/ril/platformlib/include/")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../hardware/ril/platformlib/include/utils/")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../hardware/ril/platformlib/include/property/")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../hardware/ril/platformlib/include/config/")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../hardware/ril/platformlib/include/tinyxml/")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../hardware/ril/platformlib/include/mtkrilutils/")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../hardware/ril/platformlib/include/netutils")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../hardware/ril/platformlib/include/log/")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../hardware/ril/platformlib/include/binder/")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../apn/inc/")

include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/telephony")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/framework/base")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/framework/include")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/framework/include/base")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/framework/include/core")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/telephony")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/telephony/nw")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/telephony/client")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/telephony/apn")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/telephony/oem")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/telephony/sdk")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/telephony/suplmessageparser")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/telephony/data")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/telephony/agpsadapter")

#$(TOP)/vendor/mediatek/proprietary/hardware/ims/include/volte_header/volte_imcb/sap \
#$(MTK_ROOT)/external/aee/binary/inc \
#$(MTK_PATH_SOURCE)/hardware/ccci/include \
#$(MTK_PATH_SOURCE)/external/libsysenv \
#$(MTK_PATH_SOURCE)/system/netdagent/include \

#add source file
set(src_fils
    ril_callbacks.c
    atchannel.c
    misc.c
    at_tok.c
    telephony/agpsadapter/protocol/Agps2FrameworkInterface.c
    telephony/agpsadapter/protocol/Framework2AgpsInterface.c
    telephony/agpsadapter/protocol/mtk_socket_data_coder.c
    telephony/agpsadapter/protocol/mtk_socket_utils.c
    socket_channel.cpp
    socket_util.cpp
    framework/base/RfxVariant.cpp
    framework/base/RfxMessage.cpp
    framework/base/RfxSocketState.cpp
    framework/core/Rfx.cpp
    framework/core/RfxObject.cpp
    framework/core/RfxClassInfo.cpp
    framework/core/RfxAction.cpp
    framework/core/RfxAsyncSignal.cpp
    framework/core/RfxSignal.cpp
    framework/core/RfxTimer.cpp
    framework/core/RfxMainThread.cpp
    framework/core/RfxController.cpp
    framework/core/RfxRootController.cpp
    framework/core/RfxSlotRootController.cpp
    framework/core/RfxControllerFactory.cpp
    framework/core/RfxStatusManager.cpp
    framework/core/RfxRilAdapter.cpp
    framework/core/RfxDispatchThread.cpp
    framework/core/RfxSocketStateManager.cpp
    framework/base/RfxDebugInfo.cpp
    framework/base/RfxDefaultDestUtils.cpp
    framework/base/RfxCallState.cpp
    framework/base/RfxNwServiceState.cpp
    framework/core/RfxTestBasicController.cpp
    framework/core/RfxTestSuitController.cpp
    framework/base/RfxTransferUtils.cpp
    framework/base/RfxParcelTransfer.cpp
    framework/base/RfxParcelTransferUtils.cpp
    telephony/client/RilClient.cpp
    telephony/client/RilDefaultClient.cpp
    telephony/client/RilClientQueue.cpp
    telephony/client/RpRilClientController.cpp
    telephony/nw/RpNwStateController.cpp
    telephony/nw/RpNwPhoneTypeUpdater.cpp
    telephony/power/RpRadioController.cpp
    telephony/power/RadioMessage.cpp
    telephony/call/RpCallController.cpp
    telephony/ss/RpSsController.cpp
    telephony/sim/RpSimController.cpp
    telephony/sim/RpSimControllerBase.cpp
    telephony/sim/RpGsmSimController.cpp
    telephony/sim/RpC2kSimController.cpp
    telephony/apn/RpApnController.cpp
    telephony/data/RpDataController.cpp
    telephony/data/RpDataUtils.cpp
    telephony/data/ApnContext.cpp
    telephony/data/ApnSetting.cpp
    telephony/data/RetryManager.cpp
    telephony/data/Common.cpp
    telephony/data/NetworkConfig.cpp
    telephony/data/DcTracker.cpp
    telephony/data/DcFail.cpp
    telephony/data/DcController.cpp
    telephony/data/DataConnection.cpp
    telephony/data/PdnManager.cpp
    telephony/data/DataCallResponse.cpp
	telephony/oem/RpOemController.cpp
)

set(src_fils ${src_fils} )

add_library(vendor-ril SHARED ${src_fils})

set(link_libs pthread mipc_api ubox mtklog mtkrilutils mtkcutils mtkutils mtkbinder mtkproperty apn rt)
target_link_libraries(vendor-ril ${link_libs})

#install
install(TARGETS vendor-ril
    RUNTIME DESTINATION bin
    LIBRARY DESTINATION lib
    ARCHIVE DESTINATION lib)

install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../include/telephony/ril.h
	${CMAKE_CURRENT_SOURCE_DIR}/../include/telephony/librilutils.h
	${CMAKE_CURRENT_SOURCE_DIR}/../include/telephony/mtk_ril_ivt.h
	${CMAKE_CURRENT_SOURCE_DIR}/../include/telephony/mtk_ril_sp.h
	${CMAKE_CURRENT_SOURCE_DIR}/../include/telephony/record_stream.h
	${CMAKE_CURRENT_SOURCE_DIR}/../include/telephony/ril_cdma_sms.h
	${CMAKE_CURRENT_SOURCE_DIR}/../include/telephony/ril_msim.h
	${CMAKE_CURRENT_SOURCE_DIR}/../include/telephony/ril_nv_items.h
	DESTINATION include/vendor-ril/telephony/)