mirror of
https://github.com/OpenAMP/open-amp.git
synced 2026-02-06 02:54:32 +08:00
Update CMake files to compile OpenAMP for Linux
This patch is to enable to build OpenAMP for Linux userspace. Signed-off-by: Wendy Liang <jliang@xilinx.com>
This commit is contained in:
@@ -10,7 +10,7 @@ list (APPEND CMAKE_MODULE_PATH
|
||||
"${CMAKE_SOURCE_DIR}/cmake/modules"
|
||||
"${CMAKE_SOURCE_DIR}/cmake/platforms")
|
||||
|
||||
project (OpenAMP)
|
||||
project (open_amp)
|
||||
enable_language(C ASM)
|
||||
|
||||
include (CheckIncludeFiles)
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
collector_create (APP_COMMON_SOURCES "")
|
||||
collector_create (APP_LIB_DIRS "")
|
||||
collector_create (APP_INC_DIRS "")
|
||||
collector_create (APP_LIB_DEPS "")
|
||||
|
||||
set_property (GLOBAL PROPERTY APP_LIB_DEPS "-lopen_amp")
|
||||
set_property (GLOBAL APPEND PROPERTY APP_LIB_DEPS "-lmetal")
|
||||
set (APPS_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
set (APPS_SHARE_DIR "${CMAKE_CURRENT_BINARY_DIR}/share")
|
||||
@@ -18,11 +17,11 @@ endif (WITH_LINUXREMOTE)
|
||||
|
||||
add_subdirectory (echo_test)
|
||||
add_subdirectory (matrix_multiply)
|
||||
if (WITH_PROXY)
|
||||
if (WITH_PROXY_APPS)
|
||||
if (NOT WITH_REMOTEPROC_MASTER)
|
||||
add_subdirectory (rpc_demo)
|
||||
endif (NOT WITH_REMOTEPROC_MASTER)
|
||||
endif (WITH_PROXY)
|
||||
endif (WITH_PROXY_APPS)
|
||||
|
||||
if (WITH_FUNCTION_TEST_SUITE)
|
||||
add_subdirectory (func_test_suite)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
set (_app "echo_testd")
|
||||
set (_cflags "${CMAKE_C_FLAGS} ${APP_EXTRA_C_FLAGS}")
|
||||
set (_fw_dir "${APPS_SHARE_DIR}")
|
||||
|
||||
@@ -11,34 +10,58 @@ collector_list (_list PROJECT_LIB_DIRS)
|
||||
collector_list (_app_list APP_LIB_DIRS)
|
||||
link_directories (${_list} ${_app_list})
|
||||
|
||||
collector_list (_list APP_COMMON_SOURCES)
|
||||
if (WITH_REMOTEPROC_MASTER)
|
||||
list (APPEND _list "${CMAKE_CURRENT_SOURCE_DIR}/echo_testd_remoteproc_master.c")
|
||||
set (_cflags "${_cflags} -DBAREMETAL_MASTER=1")
|
||||
else (WITH_REMOTEPROC_MASTER)
|
||||
list (APPEND _list "${CMAKE_CURRENT_SOURCE_DIR}/echo_testd.c")
|
||||
endif (WITH_REMOTEPROC_MASTER)
|
||||
add_executable (${_app}.out ${_list})
|
||||
|
||||
set_source_files_properties(${_list} PROPERTIES COMPILE_FLAGS "${_cflags}")
|
||||
|
||||
get_property (_linker_script GLOBAL PROPERTY APP_LINKER_SCRIPT)
|
||||
get_property (_deps GLOBAL PROPERTY APP_LIB_DEPS)
|
||||
set (_deps "${_deps} ${PLATFORM_LIB_DEPS}")
|
||||
string (STRIP "${_deps}" _deps)
|
||||
collector_list (_deps PROJECT_LIB_DEPS)
|
||||
|
||||
if (WITH_REMOTEPROC_MASTER)
|
||||
target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o ${_deps} -Wl,--end-group)
|
||||
add_custom_target (${_app}.bin ALL
|
||||
${CROSS_PREFIX}objcopy -O binary ${_app}.out ${_app}.bin
|
||||
DEPENDS ${_app}.out)
|
||||
|
||||
add_dependencies (${_app}.out ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o)
|
||||
|
||||
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${_app}.bin" DESTINATION bin)
|
||||
else (WITH_REMOTEPROC_MASTER)
|
||||
target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_deps} -Wl,--end-group)
|
||||
|
||||
install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
|
||||
endif (WITH_REMOTEPROC_MASTER)
|
||||
set (OPENAMP_LIB open_amp)
|
||||
|
||||
foreach (_app echo_test echo_testd)
|
||||
collector_list (_sources APP_COMMON_SOURCES)
|
||||
set (build_app 1)
|
||||
if (WITH_REMOTEPROC_MASTER)
|
||||
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_app}_remoteproc_master.c")
|
||||
list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}_remoteproc_master.c")
|
||||
set (_cflags "${_cflags} -DBAREMETAL_MASTER=1")
|
||||
else ()
|
||||
set (build_app 0)
|
||||
endif ()
|
||||
else (WITH_REMOTEPROC_MASTER)
|
||||
list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}.c")
|
||||
endif (WITH_REMOTEPROC_MASTER)
|
||||
|
||||
if (${build_app} EQUAL "1")
|
||||
if (WITH_SHARED_LIB)
|
||||
add_executable (${_app}-shared ${_sources})
|
||||
target_link_libraries (${_app}-shared ${OPENAMP_LIB}-shared ${_deps})
|
||||
install (TARGETS ${_app}-shared RUNTIME DESTINATION bin)
|
||||
endif (WITH_SHARED_LIB)
|
||||
|
||||
if (WITH_STATIC_LIB)
|
||||
if (${PROJECT_SYSTEM} STREQUAL "linux")
|
||||
add_executable (${_app}-static ${_sources})
|
||||
target_link_libraries (${_app}-static ${OPENAMP_LIB}-static ${_deps})
|
||||
install (TARGETS ${_app}-static RUNTIME DESTINATION bin)
|
||||
else (${PROJECT_SYSTEM})
|
||||
add_executable (${_app}.out ${_sources})
|
||||
set_source_files_properties(${_sources} PROPERTIES COMPILE_FLAGS "${_cflags}")
|
||||
|
||||
if (WITH_REMOTEPROC_MASTER)
|
||||
target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o ${OPENAM__LIB}-static ${_deps} -Wl,--end-group)
|
||||
add_custom_target (${_app}.bin ALL
|
||||
${CROSS_PREFIX}objcopy -O binary ${_app}.out ${_app}.bin
|
||||
DEPENDS ${_app}.out)
|
||||
|
||||
add_dependencies (${_app}.out ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o)
|
||||
|
||||
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${_app}.bin" DESTINATION bin)
|
||||
|
||||
else (WITH_REMOTEPROC_MASTER)
|
||||
|
||||
target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${OPENAMP_LIB}-static ${_deps} -Wl,--end-group)
|
||||
|
||||
install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
|
||||
endif (WITH_REMOTEPROC_MASTER)
|
||||
endif (${PROJECT_SYSTEM} STREQUAL "linux" )
|
||||
endif (WITH_STATIC_LIB)
|
||||
endif (${build_app} EQUAL "1")
|
||||
endforeach(_app)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
|
||||
set (_app "matrix_multiplyd")
|
||||
set (_cflags "${CMAKE_C_FLAGS} ${APP_EXTRA_C_FLAGS}")
|
||||
set (_fw_dir "${APPS_SHARE_DIR}")
|
||||
|
||||
@@ -11,34 +9,58 @@ collector_list (_list PROJECT_LIB_DIRS)
|
||||
collector_list (_app_list APP_LIB_DIRS)
|
||||
link_directories (${_list} ${_app_list})
|
||||
|
||||
collector_list (_list APP_COMMON_SOURCES)
|
||||
if (WITH_REMOTEPROC_MASTER)
|
||||
list (APPEND _list "${CMAKE_CURRENT_SOURCE_DIR}/matrix_multiplyd_remoteproc_master.c")
|
||||
set (_cflags "${_cflags} -DBAREMETAL_MASTER=1")
|
||||
else (WITH_REMOTEPROC_MASTER)
|
||||
list (APPEND _list "${CMAKE_CURRENT_SOURCE_DIR}/matrix_multiplyd.c")
|
||||
endif (WITH_REMOTEPROC_MASTER)
|
||||
add_executable (${_app}.out ${_list})
|
||||
|
||||
set_source_files_properties(${_list} PROPERTIES COMPILE_FLAGS "${_cflags}")
|
||||
|
||||
get_property (_linker_script GLOBAL PROPERTY APP_LINKER_SCRIPT)
|
||||
get_property (_deps GLOBAL PROPERTY APP_LIB_DEPS)
|
||||
set (_deps "${_deps} ${PLATFORM_LIB_DEPS}")
|
||||
string (STRIP "${_deps}" _deps)
|
||||
collector_list (_deps PROJECT_LIB_DEPS)
|
||||
|
||||
if (WITH_REMOTEPROC_MASTER)
|
||||
target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o ${_deps} -Wl,--end-group)
|
||||
add_custom_target (${_app}.bin ALL
|
||||
${CROSS_PREFIX}objcopy -O binary ${_app}.out ${_app}.bin
|
||||
DEPENDS ${_app}.out)
|
||||
|
||||
add_dependencies (${_app}.out ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o)
|
||||
|
||||
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${_app}.bin" DESTINATION bin)
|
||||
else (WITH_REMOTEPROC_MASTER)
|
||||
target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_deps} -Wl,--end-group)
|
||||
|
||||
install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
|
||||
endif (WITH_REMOTEPROC_MASTER)
|
||||
set (OPENAMP_LIB open_amp)
|
||||
foreach (_app matrix_multiply matrix_multiplyd)
|
||||
collector_list (_sources APP_COMMON_SOURCES)
|
||||
set (build_app 1)
|
||||
if (WITH_REMOTEPROC_MASTER)
|
||||
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_app}_remoteproc_master.c")
|
||||
list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}_remoteproc_master.c")
|
||||
set (_cflags "${_cflags} -DBAREMETAL_MASTER=1")
|
||||
else ()
|
||||
set (build_app 0)
|
||||
endif ()
|
||||
else (WITH_REMOTEPROC_MASTER)
|
||||
list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}.c")
|
||||
endif (WITH_REMOTEPROC_MASTER)
|
||||
|
||||
if (${build_app} EQUAL "1")
|
||||
if (WITH_SHARED_LIB)
|
||||
add_executable (${_app}-shared ${_sources})
|
||||
target_link_libraries (${_app}-shared ${OPENAMP_LIB}-shared ${_deps})
|
||||
install (TARGETS ${_app}-shared RUNTIME DESTINATION bin)
|
||||
endif (WITH_SHARED_LIB)
|
||||
|
||||
if (WITH_STATIC_LIB)
|
||||
if (${PROJECT_SYSTEM} STREQUAL "linux")
|
||||
add_executable (${_app}-static ${_sources})
|
||||
target_link_libraries (${_app}-static ${OPENAMP_LIB}-static ${_deps})
|
||||
install (TARGETS ${_app}-static RUNTIME DESTINATION bin)
|
||||
else (${PROJECT_SYSTEM})
|
||||
add_executable (${_app}.out ${_sources})
|
||||
set_source_files_properties(${_sources} PROPERTIES COMPILE_FLAGS "${_cflags}")
|
||||
|
||||
if (WITH_REMOTEPROC_MASTER)
|
||||
target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o ${OPENAM__LIB}-static ${_deps} -Wl,--end-group)
|
||||
add_custom_target (${_app}.bin ALL
|
||||
${CROSS_PREFIX}objcopy -O binary ${_app}.out ${_app}.bin
|
||||
DEPENDS ${_app}.out)
|
||||
|
||||
add_dependencies (${_app}.out ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o)
|
||||
|
||||
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${_app}.bin" DESTINATION bin)
|
||||
|
||||
else (WITH_REMOTEPROC_MASTER)
|
||||
|
||||
target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${OPENAMP_LIB}-static ${_deps} -Wl,--end-group)
|
||||
|
||||
install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
|
||||
endif (WITH_REMOTEPROC_MASTER)
|
||||
endif (${PROJECT_SYSTEM} STREQUAL "linux" )
|
||||
endif (WITH_STATIC_LIB)
|
||||
endif (${build_app} EQUAL "1")
|
||||
endforeach(_app)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
set (_app "rpc_demo")
|
||||
set (_cflags "${CMAKE_C_FLAGS} ${APP_EXTRA_C_FLAGS}")
|
||||
set (_fw_dir "${APPS_SHARE_DIR}")
|
||||
|
||||
collector_list (_list PROJECT_INC_DIRS)
|
||||
collector_list (_app_list APP_INC_DIRS)
|
||||
@@ -9,16 +9,38 @@ collector_list (_list PROJECT_LIB_DIRS)
|
||||
collector_list (_app_list APP_LIB_DIRS)
|
||||
link_directories (${_list} ${_app_list})
|
||||
|
||||
collector_list (_list APP_COMMON_SOURCES)
|
||||
list (APPEND _list "${CMAKE_CURRENT_SOURCE_DIR}/rpc_demo.c")
|
||||
add_executable (${_app}.out ${_list})
|
||||
|
||||
set_source_files_properties(${_list} PROPERTIES COMPILE_FLAGS "${_cflags}")
|
||||
|
||||
get_property (_linker_script GLOBAL PROPERTY APP_LINKER_SCRIPT)
|
||||
get_property (_deps GLOBAL PROPERTY APP_LIB_DEPS)
|
||||
set (_deps "${_deps} ${PLATFORM_LIB_DEPS}")
|
||||
string (STRIP "${_deps}" _deps)
|
||||
target_link_libraries(${_app}.out -Wl,-Map=echo_test.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${_deps} -Wl,--end-group)
|
||||
collector_list (_deps PROJECT_LIB_DEPS)
|
||||
|
||||
install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
|
||||
set (OPENAMP_LIB open_amp)
|
||||
|
||||
if (${PROJECT_SYSTEM} STREQUAL "linux")
|
||||
set (app_list rpc_demod)
|
||||
else (${PROJECT_SYSTEM})
|
||||
set (app_list rpc_demo)
|
||||
endif (${PROJECT_SYSTEM} STREQUAL "linux")
|
||||
|
||||
foreach (_app ${app_list})
|
||||
collector_list (_sources APP_COMMON_SOURCES)
|
||||
list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}.c")
|
||||
|
||||
if (WITH_SHARED_LIB)
|
||||
add_executable (${_app}-shared ${_sources})
|
||||
target_link_libraries (${_app}-shared ${OPENAMP_LIB}-shared ${_deps})
|
||||
install (TARGETS ${_app}-shared RUNTIME DESTINATION bin)
|
||||
endif (WITH_SHARED_LIB)
|
||||
|
||||
if (WITH_STATIC_LIB)
|
||||
if (${PROJECT_SYSTEM} STREQUAL "linux")
|
||||
add_executable (${_app}-static ${_sources})
|
||||
target_link_libraries (${_app}-static ${OPENAMP_LIB}-static ${_deps})
|
||||
install (TARGETS ${_app}-static RUNTIME DESTINATION bin)
|
||||
else (${PROJECT_SYSTEM})
|
||||
add_executable (${_app}.out ${_sources})
|
||||
set_source_files_properties(${_sources} PROPERTIES COMPILE_FLAGS "${_cflags}")
|
||||
|
||||
target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections -T\"${_linker_script}\" -Wl,--start-group ${OPENAMP_LIB}-static ${_deps} -Wl,--end-group)
|
||||
install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
|
||||
endif (${PROJECT_SYSTEM} STREQUAL "linux" )
|
||||
endif (WITH_STATIC_LIB)
|
||||
endforeach(_app)
|
||||
|
||||
@@ -12,3 +12,7 @@ set_property (GLOBAL PROPERTY APP_LINKER_SCRIPT "${_linker_script}")
|
||||
find_library(LIBXIL_LIB NAMES xil PATHS ${CMAKE_FIND_ROOT_PATH})
|
||||
get_filename_component(LIBXIL_LIB_DIR ${LIBXIL_LIB} DIRECTORY)
|
||||
collect(PROJECT_LIB_DIRS ${LIBXIL_LIB_DIR})
|
||||
|
||||
collect(PROJECT_LIB_DEPS xil)
|
||||
collect(PROJECT_LIB_DEPS c)
|
||||
collect(PROJECT_LIB_DEPS m)
|
||||
|
||||
@@ -18,9 +18,14 @@ function (collect name)
|
||||
string(COMPARE NOTEQUAL "${_base}" "" _is_rel)
|
||||
set (_list)
|
||||
foreach (s IN LISTS ARGN)
|
||||
get_filename_component (s "${s}" ABSOLUTE)
|
||||
if (_is_rel)
|
||||
get_filename_component (s "${s}" ABSOLUTE)
|
||||
file (RELATIVE_PATH s "${_base}" "${s}")
|
||||
else (_is_rel)
|
||||
get_filename_component (ts "${s}" ABSOLUTE)
|
||||
if (EXISTS "${ts}")
|
||||
set (s "${ts}")
|
||||
endif (EXISTS "${ts}")
|
||||
endif (_is_rel)
|
||||
list (APPEND _list "${s}")
|
||||
endforeach ()
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
find_package (Libmetal REQUIRED)
|
||||
collect (PROJECT_INC_DIRS "${LIBMETAL_INCLUDE_DIR}")
|
||||
collect (PROJECT_LIB_DIRS "${LIBMETAL_LIB_DIR}")
|
||||
collect (PROJECT_LIB_DEPS "${LIBMETAL_LIB}")
|
||||
|
||||
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
||||
check_include_files (stdatomic.h HAVE_STDATOMIC_H)
|
||||
|
||||
else ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
||||
set (_saved_cmake_required_flags ${CMAKE_REQUIRED_FLAGS})
|
||||
set (CMAKE_REQUIRED_FLAGS "-c")
|
||||
|
||||
@@ -19,4 +19,13 @@ find_path(LIBMETAL_INCLUDE_DIR NAMES metal/sys.h PATHS ${CMAKE_FIND_ROOT_PATH})
|
||||
find_library(LIBMETAL_LIB NAMES metal PATHS ${CMAKE_FIND_ROOT_PATH})
|
||||
get_filename_component(LIBMETAL_LIB_DIR ${LIBMETAL_LIB} DIRECTORY)
|
||||
|
||||
mark_as_advanced (LIBMETAL_INCLUDE_DIR LIBMETAL_LIB_DIR)
|
||||
# handle the QUIETLY and REQUIRED arguments and set HUGETLBFS_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include (FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS (LIBMETAL DEFAULT_MSG LIBMETAL_LIB LIBMETAL_INCLUDE_DIR)
|
||||
|
||||
if (LIBMETAL_FOUND)
|
||||
set (LIBMETAL_LIBS ${LIBMEAL_LIB})
|
||||
endif (LIBMETAL_FOUND)
|
||||
|
||||
mark_as_advanced (LIBMETAL_LIB LIBMETAL_INCLUDE_DIR LIBMETAL_LIB_DIR)
|
||||
|
||||
@@ -34,7 +34,13 @@ endif (WITH_REMOTEPROC_MASTER)
|
||||
# Select which components are in the openamp lib
|
||||
option (WITH_PROXY "Build with proxy(access device controlled by other processor)" ON)
|
||||
option (WITH_APPS "Build with sample applicaitons" OFF)
|
||||
option (WITH_PROXY_APPS "Build with proxy sample applicaitons" OFF)
|
||||
if (WITH_APPS)
|
||||
if (WITH_PROXY)
|
||||
set (WITH_PROXY_APPS ON)
|
||||
elseif ("${PROJECT_SYSTEM}" STREQUAL "linux")
|
||||
set (WITH_PROXY_APPS ON)
|
||||
endif (WITH_PROXY)
|
||||
option (WITH_BENCHMARK "Build benchmark app" OFF)
|
||||
endif (WITH_APPS)
|
||||
option (WITH_OBSOLETE "Build obsolete system libs" OFF)
|
||||
@@ -50,5 +56,11 @@ if (WITH_BENCHMARK)
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DOPENAMP_BENCHMARK_ENABLE")
|
||||
endif (WITH_BENCHMARK)
|
||||
|
||||
option (WITH_STATIC_LIB "Build with a static library" ON)
|
||||
|
||||
if ("${PROJECT_SYSTEM}" STREQUAL "linux")
|
||||
option (WITH_SHARED_LIB "Build with a shared library" ON)
|
||||
endif ("${PROJECT_SYSTEM}" STREQUAL "linux")
|
||||
|
||||
message ("-- C_FLAGS : ${CMAKE_C_FLAGS}")
|
||||
# vim: expandtab:ts=2:sw=2:smartindent
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
set (CMAKE_SYSTEM_PROCESSOR "arm64")
|
||||
set (CROSS_PREFIX "aarch64-linux-gnu-")
|
||||
set (MACHINE "zynqmp_a53" CACHE STRING "")
|
||||
|
||||
include (cross-linux-gcc)
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ collect (PROJECT_INC_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||
collect (PROJECT_INC_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/openamp/machine/${PROJECT_MACHINE}")
|
||||
collect (PROJECT_INC_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/openamp/system/${PROJECT_SYSTEM}/machine/${PROJECT_MACHINE}")
|
||||
|
||||
|
||||
add_subdirectory (common)
|
||||
add_subdirectory (virtio)
|
||||
add_subdirectory (rpmsg)
|
||||
@@ -19,18 +20,39 @@ add_subdirectory (system)
|
||||
|
||||
set (OPENAMP_LIB open_amp)
|
||||
|
||||
collector_list (_list PROJECT_INC_DIRS)
|
||||
collector_list (_include PROJECT_INC_DIRS)
|
||||
include_directories (${_include})
|
||||
|
||||
include_directories (${_list} ${LIBMETAL_INCLUDE_DIR})
|
||||
collector_list (_deps PROJECT_LIB_DEPS)
|
||||
|
||||
get_property (_ecflags GLOBAL PROPERTY "PROJECT_LIB_EXTRA_CFLAGS")
|
||||
|
||||
collector_list (_list PROJECT_LIB_SOURCES)
|
||||
set_property (SOURCE ${_list}
|
||||
collector_list (_sources PROJECT_LIB_SOURCES)
|
||||
set_property (SOURCE ${_sources}
|
||||
APPEND_STRING PROPERTY COMPILE_FLAGS " ${_ecflags}")
|
||||
add_library (${OPENAMP_LIB} STATIC ${_list})
|
||||
|
||||
install (TARGETS ${OPENAMP_LIB} ARCHIVE DESTINATION lib)
|
||||
# Build a shared library if so configured.
|
||||
if (WITH_SHARED_LIB)
|
||||
set (_lib ${OPENAMP_LIB}-shared)
|
||||
add_library (${_lib} SHARED ${_sources})
|
||||
target_link_libraries (${_lib} ${_deps})
|
||||
install (TARGETS ${_lib} LIBRARY DESTINATION lib)
|
||||
set_target_properties (${_lib} PROPERTIES
|
||||
OUTPUT_NAME "${OPENAMP_LIB}"
|
||||
VERSION "${PROJECT_VER}"
|
||||
SOVERSION "${PROJECT_VER_MAJOR}"
|
||||
)
|
||||
endif (WITH_SHARED_LIB)
|
||||
|
||||
if (WITH_STATIC_LIB)
|
||||
set (_lib ${OPENAMP_LIB}-static)
|
||||
add_library (${_lib} STATIC ${_sources})
|
||||
install (TARGETS ${_lib} ARCHIVE DESTINATION lib)
|
||||
set_target_properties (${_lib} PROPERTIES
|
||||
OUTPUT_NAME "${OPENAMP_LIB}"
|
||||
)
|
||||
endif (WITH_STATIC_LIB)
|
||||
|
||||
install (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/openamp" DESTINATION include)
|
||||
|
||||
# vim: expandtab:ts=2:sw=2:smartindent
|
||||
|
||||
Reference in New Issue
Block a user