module_build.cmake 8.1 KB
# 模组构建文件,用于加载源代码 与 配置代码中的开关
# ${ROOT_DIRS}为cmakelist文件提供的工程根目录

message("\n*************************开始模块构建***********************\n")

set(IFLAY_TTS_MODULE VERSION_SWITCH_OFF) 
set(ESPEAK_TTS_MODULE VERSION_SWITCH_OFF) 
set(ALSALIB_MODULE VERSION_SWITCH_OFF) 
set(OPUS_MODULE VERSION_SWITCH_OFF) 
set(LIB_RK_MMP VERSION_SWITCH_OFF) 
set(LIB_RK_RGB VERSION_SWITCH_OFF) 
set(LIB_USB VERSION_SWITCH_OFF) 
set(LIB_KT_IRC VERSION_SWITCH_OFF)
set(LIB_SAT_IRC VERSION_SWITCH_OFF)

add_definitions(-D COMPILE_MODE_MODULE) #设置代码为编译模式

#加载基础库JZSDK库基础代码
file(GLOB_RECURSE JZSDK_COMMON_SRC 		${ROOT_DIRS}JZsdk_Common/*.c)
list(APPEND ALL_SRC_FILES ${JZSDK_COMMON_SRC})  
list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_Common)  

file(GLOB_RECURSE JZSDK_CONFIG_SRC_baseConfig 		${ROOT_DIRS}JZsdk_Config/BaseConfig.c)
file(GLOB_RECURSE JZSDK_CONFIG_SRC_Paramterpar 		${ROOT_DIRS}JZsdk_Config/ParamterParsing.c)

list(APPEND ALL_SRC_FILES ${JZSDK_CONFIG_SRC_baseConfig})  
list(APPEND ALL_SRC_FILES ${JZSDK_CONFIG_SRC_Paramterpar})  
list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_Config)  

file(GLOB_RECURSE JZSDK_HAL_SRC 		${ROOT_DIRS}JZsdk_hal/*.c)
list(APPEND ALL_SRC_FILES ${JZSDK_HAL_SRC})  
list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_hal)  

message("\nJZSDK基础代码加载完毕\n")

#如果要加载设备信息模块,需要加载以下附属内容
if(${DEVICE_INFO_MODULE}  STREQUAL "VERSION_SWITCH_ON")
    message("\n设备信息模块源码加载中")
	file(GLOB_RECURSE DEVICE_MESSAGE_SRC 			${ROOT_DIRS}Module/DeviceInfo/*.c)
	list(APPEND ALL_SRC_FILES ${DEVICE_MESSAGE_SRC}) 	

endif()

#如果要加载云台模块,需要加载以下附属内容
if(${GIMBAL_MODULE}  STREQUAL "VERSION_SWITCH_ON")
    message("\n云台模块源码加载中")
	file(GLOB_RECURSE GIMBAL_SRC 			${ROOT_DIRS}Module/Gimbal/*.c)
	list(APPEND ALL_SRC_FILES ${GIMBAL_SRC}) 	
	
    #打开云台的代码编译部分
    add_definitions(-DMACRO_GIMBAL_MODULE)

endif()

#如果要加载引脚模块,需要加载以下附属内容
if(${IRCUT_MODULE}  STREQUAL "VERSION_SWITCH_ON")
    message("\n引脚模块源码加载中")
    file(GLOB_RECURSE MODULE_IRCUT_SRC 			${ROOT_DIRS}Module/Ircut/*.c)
    list(APPEND ALL_SRC_FILES ${MODULE_IRCUT_SRC})  
    
endif()

#如果要加载光源模块,需要加载以下附属内容
if(${LIGHTING_MODULE} STREQUAL "VERSION_SWITCH_ON")
    message("\n光源模块加载中")

    #打开光源的代码编译部分
    add_definitions(-DMACRO_LIGHTING_MODULE)

    #将光源的源代码加入编译中
    file(GLOB_RECURSE LIGHTING_SRC 			${ROOT_DIRS}Module/Lighting/*.c)
	list(APPEND ALL_SRC_FILES ${LIGHTING_SRC}) 	

endif()

#如果要加载媒体管理模块,需要加载以下附属内容
if(${MEDIA_PROC_MODULE}  STREQUAL "VERSION_SWITCH_ON")
    message("\n媒体管理模块加载中") 

    #将媒体管理模块的源代码加入编译中
    add_definitions(-DMACRO_MEDIA_PROC_MODULE)

	file(GLOB_RECURSE MEDIA_PROC_SRC 			${ROOT_DIRS}Module/MediaProc/*.c)
	file(GLOB_RECURSE MEDIA_PROC_SRC_CPP 			${ROOT_DIRS}Module/MediaProc/*.cpp)
	list(APPEND ALL_SRC_FILES ${MEDIA_PROC_SRC})
	list(APPEND ALL_SRC_FILES ${MEDIA_PROC_SRC_CPP})
	
    #如果要加载红外相机模块,额外加载以下附属内容
    if(${IRC_MODULE} STREQUAL "VERSION_SWITCH_ON")
        message("加载红外相机模块")
        add_definitions(-DMACRO_IRC_MODULE)

        message("加载RK MMP模块")
        set(LIB_RK_MMP VERSION_SWITCH_ON) 

        message("加载RK RGA模块")
        set(LIB_RK_RGB VERSION_SWITCH_ON) 

        message("加载USB模块")
        set(LIB_USB VERSION_SWITCH_ON) 
        
        if(${LIB_KT_MODULE} STREQUAL "VERSION_SWITCH_ON")
            message("加载昆腾红外相机模块")
            set(LIB_KT_IRC VERSION_SWITCH_ON)
            
        endif()
        
        if(${LIB_SATIRC_MODULE} STREQUAL "VERSION_SWITCH_ON")
            message("加载飒特红外相机模块")
            set(LIB_SAT_IRC VERSION_SWITCH_ON)
            
        endif()

    endif()

endif()

#如果要加载音频库模块,需要加载以下附属内容
if(${AUDIODEAL_MODULE} STREQUAL "VERSION_SWITCH_ON")
    message("\n音频库模块加载中")

    message("加载音频库")
    add_definitions(-DMACRO_AUDIODEAL_MODULE)
    file(GLOB_RECURSE AUDIODEAL_SRC 			${ROOT_DIRS}Module/AudioDeal/*.c)
	list(APPEND ALL_SRC_FILES ${AUDIODEAL_SRC})  

endif()

#如果要加载喊话器模块,需要加载以下附属内容
if(${MEGAPHONE_MODULE} STREQUAL "VERSION_SWITCH_ON")
    message("\n喊话器模块加载中")

    message("加载喊话器")
    add_definitions(-DMACRO_MEGAPHONE_MODULE) #加载喊话器模块
    file(GLOB_RECURSE MEGAPHONE_SRC 			${ROOT_DIRS}Module/Megaphone/*.c)
	list(APPEND ALL_SRC_FILES ${MEGAPHONE_SRC})  	

    message("加载讯飞TTS模块")	
    set(IFLAY_TTS_MODULE VERSION_SWITCH_ON) 

    message("加载espeak模块")
    set(ESPEAK_TTS_MODULE VERSION_SWITCH_ON)

    message("加载alsalib模块")
    set(ALSALIB_MODULE VERSION_SWITCH_ON) 

    message("加载OPUS模块")
    set(OPUS_MODULE VERSION_SWITCH_ON) 
endif()

#如果要加载通用模块,需要加载以下附属内容
if(${COMMON_MODULE}  STREQUAL "VERSION_SWITCH_ON")

    message("\n通用模块加载中")  
	file(GLOB_RECURSE COMMON_MODULE_SRC 			${ROOT_DIRS}Module/CommonMod/*.c)
	list(APPEND ALL_SRC_FILES ${COMMON_MODULE_SRC}) 
	
endif()

#如果要加载拓展接口模块,需要加载以下附属内容
if(${EXTENSION_API_MODULE}  STREQUAL "VERSION_SWITCH_ON")
    message("\n拓展接口模块加载中") 

	file(GLOB_RECURSE EXTENSION_API_MODULE_SRC 			${ROOT_DIRS}Module/ExtensionAPI/*.c)
	list(APPEND ALL_SRC_FILES ${EXTENSION_API_MODULE_SRC})  
endif()

#如果要加载侧面激光模块,需要加载以下附属内容
if(${SIDE_LASER_MODULE} STREQUAL "VERSION_SWITCH_ON")
    message("\n侧面激光模块加载中")

    #打开侧面激光的代码编译部分
    add_definitions(-DMACRO_SIDE_LASER_MODULE)

	file(GLOB_RECURSE MODULE_SIDE_LASER_SRC 			${ROOT_DIRS}Module/SideLaser/*.c)
	list(APPEND ALL_SRC_FILES ${MODULE_SIDE_LASER_SRC})
endif()

#如果要加载UI模块,需要加载以下附属内容
if(${UI_CONTROL_MODULE}  STREQUAL "VERSION_SWITCH_ON")
    message("\nUI模块源码加载中") 

	file(GLOB_RECURSE MODULE_UICONTROL_SRC 			${ROOT_DIRS}Module/UI_control/*.c)
	list(APPEND ALL_SRC_FILES ${MODULE_UICONTROL_SRC})  
	 
endif()

# wiringPi
if(${WIRINGPI_MODULE} STREQUAL "VERSION_SWITCH_ON")
    message("\nwiringPi模块加载中") 

	file(GLOB_RECURSE WIRINGPI_SRC 			${ROOT_DIRS}ThirdParty/wiringPi/*.c)
	list(APPEND ALL_SRC_FILES ${WIRINGPI_SRC})  
	list(APPEND ALL_INC_FILES ${ROOT_DIRS}ThirdParty/wiringPi)  

    #打开wiringPi的代码编译部分
    add_definitions(-DMACRO_WIRINGPI_MODULE)

endif()

# 如果要加入特殊图像处理模块,需要加载以下附属内容
if(${IMAGEPROCESSING_MODULE} STREQUAL "VERSION_SWITCH_ON")
    message("\n特殊图像处理模块加载中") 

	file(GLOB_RECURSE MODULE_IMAGEPROCESSING_SRC 			${ROOT_DIRS}Module/ImageProcessing/*.c)
    file(GLOB_RECURSE MODULE_IMAGEPROCESSING_cpp_SRC 		${ROOT_DIRS}Module/ImageProcessing/*.cpp)
	list(APPEND ALL_SRC_FILES ${MODULE_IMAGEPROCESSING_SRC})  
    list(APPEND ALL_SRC_FILES ${MODULE_IMAGEPROCESSING_cpp_SRC})  
endif()

message("\n模组加载完毕\n")

# 头文件加载,后续再进行优化
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Megaphone)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Ircut)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Gimbal)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Lighting)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/UI_control)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Camera)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/COMMONManager)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/TestAPP)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/ImageProcessing)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/SerialManagement)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/ExtensionAPI)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module)

message("**************************库构建完毕***************************\n")