executable.cmake 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. if (NOT BUILDING_SDK)
  2. if(EXISTS ${SDK_ROOT}/libkendryte.a)
  3. add_library(kendryte STATIC IMPORTED)
  4. set_property(TARGET kendryte PROPERTY IMPORTED_LOCATION ${SDK_ROOT}/libkendryte.a)
  5. include_directories(${SDK_ROOT}/include/)
  6. else()
  7. header_directories(${SDK_ROOT}/lib)
  8. add_subdirectory(${SDK_ROOT}/lib)
  9. endif()
  10. endif ()
  11. removeDuplicateSubstring(${CMAKE_C_FLAGS} CMAKE_C_FLAGS)
  12. removeDuplicateSubstring(${CMAKE_CXX_FLAGS} CMAKE_CXX_FLAGS)
  13. message("SOURCE_FILES=${SOURCE_FILES}")
  14. add_executable(${PROJECT_NAME} ${SOURCE_FILES})
  15. set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE C)
  16. if (EXISTS ${SDK_ROOT}/src/${PROJ}/ai/libai.a)
  17. add_library(ai STATIC IMPORTED)
  18. set_property(TARGET ai PROPERTY IMPORTED_LOCATION ${SDK_ROOT}/src/${PROJ}/ai/libai.a)
  19. target_link_libraries(${PROJECT_NAME}
  20. -Wl,--start-group
  21. gcc m c
  22. -Wl,--whole-archive
  23. kendryte
  24. ai
  25. -Wl,--no-whole-archive
  26. -Wl,--end-group
  27. )
  28. else ()
  29. target_link_libraries(${PROJECT_NAME}
  30. -Wl,--start-group
  31. gcc m c
  32. -Wl,--whole-archive
  33. kendryte
  34. -Wl,--no-whole-archive
  35. -Wl,--end-group
  36. )
  37. endif()
  38. if (EXISTS ${SDK_ROOT}/src/${PROJ}/project.cmake)
  39. include(${SDK_ROOT}/src/${PROJ}/project.cmake)
  40. endif ()
  41. IF(SUFFIX)
  42. SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SUFFIX ${SUFFIX})
  43. ENDIF()
  44. # Build target
  45. add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
  46. COMMAND ${CMAKE_OBJCOPY} --output-format=binary ${CMAKE_BINARY_DIR}/${PROJECT_NAME}${SUFFIX} ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.bin
  47. DEPENDS ${PROJECT_NAME}
  48. COMMENT "Generating .bin file ...")
  49. # show information
  50. include(${CMAKE_CURRENT_LIST_DIR}/dump-config.cmake)