CMake: generic: ZynqMP R5: udpate to use libxil, libmetal
[processor-sdk/open-amp.git] / apps / matrix_multiply / CMakeLists.txt
1 set (_cflags "${CMAKE_C_FLAGS} ${APP_EXTRA_C_FLAGS}")
2 set (_fw_dir "${APPS_SHARE_DIR}")
4 collector_list (_list PROJECT_INC_DIRS)
5 collector_list (_app_list APP_INC_DIRS)
6 include_directories (${_list} ${_app_list} ${CMAKE_CURRENT_SOURCE_DIR})
8 collector_list (_list PROJECT_LIB_DIRS)
9 collector_list (_app_list APP_LIB_DIRS)
10 link_directories (${_list} ${_app_list})
12 get_property (_linker_opt GLOBAL PROPERTY APP_LINKER_OPT)
13 collector_list (_deps PROJECT_LIB_DEPS)
15 set (OPENAMP_LIB open_amp)
16 foreach (_app matrix_multiply matrix_multiplyd)
17   collector_list (_sources APP_COMMON_SOURCES)
18   set (build_app 1)
19   if (WITH_REMOTEPROC_MASTER)
20     if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_app}_remoteproc_master.c")
21       list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}_remoteproc_master.c")
22       set (_cflags "${_cflags} -DBAREMETAL_MASTER=1")
23     else ()
24       set (build_app 0)
25     endif ()
26   else (WITH_REMOTEPROC_MASTER)
27     list (APPEND _sources "${CMAKE_CURRENT_SOURCE_DIR}/${_app}.c")
28   endif (WITH_REMOTEPROC_MASTER)
29   
30   if (${build_app} EQUAL "1")
31     if (WITH_SHARED_LIB)
32       add_executable (${_app}-shared ${_sources})
33       target_link_libraries (${_app}-shared ${OPENAMP_LIB}-shared ${_deps})
34       install (TARGETS ${_app}-shared RUNTIME DESTINATION bin)
35     endif (WITH_SHARED_LIB)
36   
37     if (WITH_STATIC_LIB)
38       if (${PROJECT_SYSTEM} STREQUAL "linux")
39         add_executable (${_app}-static ${_sources})
40         target_link_libraries (${_app}-static ${OPENAMP_LIB}-static ${_deps})
41         install (TARGETS ${_app}-static RUNTIME DESTINATION bin)
42       else (${PROJECT_SYSTEM})
43         add_executable (${_app}.out ${_sources})
44         set_source_files_properties(${_sources} PROPERTIES COMPILE_FLAGS "${_cflags}")
45   
46         if (WITH_REMOTEPROC_MASTER)
47           target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections ${_linker_opt} -Wl,--start-group ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o ${OPENAM__LIB}-static ${_deps} -Wl,--end-group)
48           add_custom_target (${_app}.bin ALL
49           ${CROSS_PREFIX}objcopy -O binary ${_app}.out ${_app}.bin
50           DEPENDS ${_app}.out)
51   
52           add_dependencies (${_app}.out ${_fw_dir}/firmware1.o ${_fw_dir}/firmware2.o)
53   
54           install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${_app}.bin" DESTINATION bin)
55   
56         else (WITH_REMOTEPROC_MASTER)
57   
58           target_link_libraries(${_app}.out -Wl,-Map=${_app}.map -Wl,--gc-sections ${_linker_opt} -Wl,--start-group ${OPENAMP_LIB}-static ${_deps} -Wl,--end-group)
59   
60           install (TARGETS ${_app}.out RUNTIME DESTINATION bin)
61         endif (WITH_REMOTEPROC_MASTER)
62       endif (${PROJECT_SYSTEM} STREQUAL "linux" )
63     endif (WITH_STATIC_LIB)
64   endif (${build_app} EQUAL "1")
65 endforeach(_app)