• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1set(OBJCOPY_PATH "$ENV{HCC_PATH}" )
2##最终的链接目标,会生成对应的.a库
3#################################################
4## guest代码
5#################################################
6#添加进列表
7foreach(FILE_NAME ${ALL_OBJECT_LIBRARYS})
8	list(FIND exclude "${FILE_NAME}" is_inclide)
9	if(${is_inclide} EQUAL -1)
10	list(APPEND GUEST_SRCS
11		$<TARGET_OBJECTS:${FILE_NAME}>
12	)
13	endif()
14endforeach()
15
16#编译结果
17string(TOUPPER ${PLAM_TYPE} PLAM_TYPE_UP)
18string(TOUPPER ${CPU_TYPE} CPU_TYPE_UP)
19add_library(RASPI4  STATIC "${GUEST_SRCS}")
20add_custom_target(cleanobj)
21add_custom_command(TARGET cleanobj POST_BUILD
22				COMMAND echo finishing)
23
24if (${COMPILE_MODE} MATCHES "^.*dbg.*$")
25	message("=============== COMPILE_MODE is ${COMPILE_MODE} ===============")
26else()
27	add_custom_command(
28		TARGET RASPI4
29		POST_BUILD
30		COMMAND sh ${PROJECT_SOURCE_DIR}/cmake/common/build_auxiliary_script/make_lib_rename_file_type.sh ${OBJCOPY_PATH} ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} "RASPI4.a"
31	)
32endif()
33
34####以下为make install打包脚本#####
35set(raspi4_armv8_export modules)
36
37# 下面的变量分别定义了安装根目录、头文件安装目录、动态库安装目录、静态库安装目录、OBJECT文件安装目录、可执行程序安装目录、配置文件安装目录。
38# 注意:所有安装路径必须是相对CMAKE_INSTALL_PREFIX的相对路径,不可以使用绝对路径!!!
39# 否则安装目录下的配置文件(foo-config.cmake, foo-tragets.cmake等)拷贝到其它目录时无法工作。
40set(INSTALL_RASPI4_ARMV8_BASE_DIR                 .)
41set(INSTALL_RASPI4_ARMV8_INCLUDE_DIR              UniProton/include)
42set(INSTALL_RASPI4_ARMV8_ARCHIVE_DIR              UniProton/lib/raspi4)
43set(INSTALL_RASPI4_ARMV8_ARCHIVE_SEC_DIR          libboundscheck/lib/raspi4)
44set(INSTALL_RASPI4_ARMV8_ARCHIVE_CONFIG_DIR       UniProton/config)
45set(INSTALL_RASPI4_ARMV8_CONFIG_DIR               cmake/raspi4)
46
47
48include(CMakePackageConfigHelpers)
49configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/tool_chain/raspi4_armv8_config.cmake.in
50	${CMAKE_CURRENT_BINARY_DIR}/uniproton-raspi4-armv8-config.cmake
51	INSTALL_DESTINATION ${INSTALL_RASPI4_ARMV8_CONFIG_DIR}
52	PATH_VARS
53	INSTALL_RASPI4_ARMV8_BASE_DIR
54	INSTALL_RASPI4_ARMV8_INCLUDE_DIR
55	INSTALL_RASPI4_ARMV8_ARCHIVE_DIR
56	INSTALL_RASPI4_ARMV8_ARCHIVE_SEC_DIR
57	INSTALL_RASPI4_ARMV8_ARCHIVE_CONFIG_DIR
58	INSTALL_RASPI4_ARMV8_CONFIG_DIR
59	INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}
60)
61install(EXPORT ${raspi4_armv8_export}
62		NAMESPACE UniProton::
63		FILE uniproton-raspi4-armv8-targets.cmake
64		DESTINATION ${INSTALL_RASPI4_ARMV8_CONFIG_DIR}
65)
66install(FILES
67	${CMAKE_CURRENT_BINARY_DIR}/uniproton-raspi4-armv8-config.cmake
68	DESTINATION ${INSTALL_RASPI4_ARMV8_CONFIG_DIR}
69)
70
71install(TARGETS
72	CortexMXsec_c
73	EXPORT ${raspi4_armv8_export}
74	ARCHIVE DESTINATION ${INSTALL_RASPI4_ARMV8_ARCHIVE_SEC_DIR}
75)
76
77install(TARGETS
78	RASPI4
79	EXPORT ${raspi4_armv8_export}
80	ARCHIVE DESTINATION ${INSTALL_RASPI4_ARMV8_ARCHIVE_DIR}/
81)
82
83set(TOOLCHAIN_DIR "$ENV{HCC_PATH}") #该路径应该是外部传入,指向编译工具路径
84if (${COMPILE_MODE} MATCHES "^.*dbg.*$")
85	message("=============== COMPILE_MODE is ${COMPILE_MODE} ===============")
86else()
87
88endif()
89
90install(FILES
91	${PROJECT_SOURCE_DIR}/build/uniproton_config/config_armv8_raspi4/prt_buildef.h
92	DESTINATION ${INSTALL_RASPI4_ARMV8_ARCHIVE_CONFIG_DIR}/raspi4
93)
94
95if (NOT "${LIBCK_INSTALL_FILE_OPTION}" STREQUAL "SUPER_BUILD")
96	##{GLOB 所有文件 | GLOB_RECURSE 递归查找文件&文件夹}
97	install(FILES
98		${PROJECT_SOURCE_DIR}/src/config/prt_config.c
99		${PROJECT_SOURCE_DIR}/src/config/prt_config_internal.h
100		${PROJECT_SOURCE_DIR}/src/config/config/prt_config.h
101		DESTINATION ${INSTALL_RASPI4_ARMV8_ARCHIVE_CONFIG_DIR}
102	)
103	##{GLOB 所有文件 | GLOB_RECURSE 递归查找文件&文件夹}
104	file(GLOB common_include_files  ${PROJECT_SOURCE_DIR}/src/include/uapi/common/*.h)
105	install(FILES
106		${common_include_files}
107		DESTINATION ${INSTALL_RASPI4_ARMV8_INCLUDE_DIR}/common
108	)
109
110
111	##{GLOB 所有文件 | GLOB_RECURSE 递归查找文件&文件夹 =======}
112	file(GLOB hw_board_include_files  ${PROJECT_SOURCE_DIR}/src/include/uapi/sre/hw/board/*)
113	install(FILES
114		${hw_board_include_files}
115		DESTINATION ${INSTALL_RASPI4_ARMV8_INCLUDE_DIR}/hw/board
116	)
117
118	##{GLOB 所有文件 | GLOB_RECURSE 递归查找文件&文件夹}
119	file(GLOB hw_cpu_include_files  ${PROJECT_SOURCE_DIR}/src/include/uapi/sre/hw/cpu/*)
120	install(FILES
121		${hw_cpu_include_files}
122		DESTINATION ${INSTALL_RASPI4_ARMV8_INCLUDE_DIR}/hw/cpu
123	)
124
125	##{GLOB 所有文件 | GLOB_RECURSE 递归查找文件&文件夹}
126	file(GLOB hw_drv_include_files  ${PROJECT_SOURCE_DIR}/src/include/uapi/sre/hw/drv/*)
127	install(FILES
128		${hw_drv_include_files}
129		DESTINATION ${INSTALL_RASPI4_ARMV8_INCLUDE_DIR}/hw/drv
130	)
131
132	install(FILES
133		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_errno.h
134		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_event.h
135		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_exc.h
136		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_hook.h
137		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_hwi.h
138		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_mem.h
139		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_module.h
140		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_queue.h
141		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_sem.h
142		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_sys.h
143		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_task.h
144		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_tick.h
145		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_timer.h
146		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_typedef.h
147		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_cpup.h
148		${PROJECT_SOURCE_DIR}/src/include/uapi/prt_err.h
149		DESTINATION ${INSTALL_RASPI4_ARMV8_INCLUDE_DIR}/
150	)
151endif()
152