Hi, I want to include some open-source stacks in my code for the CC1352P1, so I'm trying to use cmake with armcl compiler and armar archiver.
Here is my code: cmake_minimum_required(VERSION 3.10) set (CMAKE_CONFIGURATION_TYPES "Debug;Release") project(lwIP) # Example lwIP application set(LWIP_DIR "/Users/sramnath/lwip_blinky/lwip") set (LWIP_DEFINITIONS LWIP_DEBUG=1) set(CMAKE_VERBOSE_MAKEFILE ON) #include(CMakeForceCompiler) # this one is important set(CMAKE_SYSTEM_NAME Generic) set (cc1352p1_board_SRCS ${LWIP_DIR}/CC1352P1_LAUNCHXL_TIRTOS.cmd ${LWIP_DIR}/CC1352P1_LAUNCHXL_fxns.c ${LWIP_DIR}/CC1352P1_LAUNCHXL.c ${LWIP_DIR}/ccfg.c ) set (LWIP_INCLUDE_DIRS "${LWIP_DIR}/src/include" "${LWIP_DIR}" "${LWIP_DIR}/contrib/" "${LWIP_DIR}/contrib/ports/tirtos/include" "${LWIP_DIR}/contrib/examples/test" # "/Users/sramnath/lwip_out/lwip/contrib/ports/tirtos" "${LWIP_DIR}/contrib/ports/tirtos" "${LWIP_TIRTOS_SRCS}" ) set (LWIP_BIOS_OPTS "--define=ti_sysbios_BIOS_swiEnabled__D=TRUE" "--define=ti_sysbios_BIOS_taskEnabled__D=TRUE" "--define=ti_sysbios_BIOS_clockEnabled__D=TRUE" "--define=ti_sysbios_BIOS_runtimeCreatesEnabled__D=TRUE" "--define=ti_sysbios_hal_Hwi_DISABLE_ALL_HOOKS" "--define=ti_sysbios_knl_Swi_DISABLE_ALL_HOOKS" "--define=ti_sysbios_BIOS_smpEnabled__D=FALSE" "--define=ti_sysbios_Build_useHwiMacros" "--define=ti_sysbios_knl_Swi_numPriorities__D=6" "--define=ti_sysbios_knl_Task_deleteTerminatedTasks__D=FALSE" "--define=ti_sysbios_knl_Task_numPriorities__D=16" "--define=ti_sysbios_knl_Task_checkStackFlag__D=FALSE" "--define=ti_sysbios_knl_Task_initStackFlag__D=TRUE" "--define=ti_sysbios_knl_Task_DISABLE_ALL_HOOKS" "--define=ti_sysbios_knl_Clock_TICK_SOURCE=ti_sysbios_knl_Clock_TickSource_TIMER" "--define=ti_sysbios_knl_Clock_TICK_MODE=ti_sysbios_knl_Clock_TickMode_DYNAMIC" "--define=ti_sysbios_hal_Core_delegate_getId=ti_sysbios_hal_CoreNull_getId__E" "--define=ti_sysbios_hal_Core_delegate_interruptCore=ti_sysbios_hal_CoreNull_interruptCore__E" "--define=ti_sysbios_hal_Core_delegate_lock=ti_sysbios_hal_CoreNull_lock__E" "--define=ti_sysbios_hal_Core_delegate_unlock=ti_sysbios_hal_CoreNull_unlock__E" "--define=ti_sysbios_hal_Core_numCores__D=1" "--define=ti_sysbios_hal_CoreNull_numCores__D=1" "--define=ti_sysbios_utils_Load_taskEnabled__D=TRUE" "--define=ti_sysbios_utils_Load_swiEnabled__D=FALSE" "--define=ti_sysbios_utils_Load_hwiEnabled__D=FALSE" "--define=ti_sysbios_family_arm_m3_Hwi_dispatcherSwiSupport__D=TRUE" "--define=ti_sysbios_family_arm_m3_Hwi_dispatcherTaskSupport__D=TRUE" "--define=ti_sysbios_family_arm_m3_Hwi_dispatcherAutoNestingSupport__D=TRUE" "--define=ti_sysbios_knl_Semaphore_supportsEvents__D=FALSE" "--define=ti_sysbios_knl_Semaphore_supportsPriority__D=FALSE" "--define=xdc_runtime_Assert_DISABLE_ALL" "--define=xdc_runtime_Log_DISABLE_ALL" ) set(CCS_PATH "/Applications/ti_ccs9/ccs9/ccs") # set(CMAKE_MAKE_PROGRAM ${CCS_PATH}/utils/bin/gmake CACHE PATH "make program" FORCE) set(CG_TOOL_ROOT ${CCS_PATH}/tools/compiler/ti-cgt-arm_18.12.2.LTS) # specify the cross compiler SET(CMAKE_C_COMPILER_FLAGS "") # SET(CMAKE_C_COMPILER "${CG_TOOL_ROOT}/bin/armcl ${cc1352p1_board_SRCS}" CACHE PATH "c compiler") SET(CMAKE_C_COMPILER "/Applications/ti_ccs9/ccs9/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/bin/armcl") SET(CMAKE_CXX_COMPILER ${CMAKE_C_COMPILER} CACHE PATH "cxx compiler") #SET(CMAKE_ASM_COMPILER ${CG_TOOL_ROOT}/bin/armasm CACHE PATH "assembler") SET(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER} CACHE PATH "assembler") SET(CMAKE_LINKER ${CMAKE_C_COMPILER} CACHE PATH "linker") # Add the default include and lib directories for tool chain include_directories(${CG_TOOL_ROOT}/include) link_directories(${CG_TOOL_ROOT}/lib) message("link_directories(${CG_TOOL_ROOT}/lib)") # set target environment set(CMAKE_FIND_ROOT_PATH ${CG_TOOL_ROOT}) # specifiy target cpu flags set(PLATFORM_CONFIG_C_FLAGS "-mv7M4 --code_state=32 --float_support=VFPv3D16 --abi=eabi -me -g --diag_warning=225 --display_error_number --diag_wrap=off --enum_type=packed --include_path=${CG_TOOL_ROOT}/include --define=_RM46x_ --define=_VFP_SUPPORT_=1" CACHE STRING "platform config c flags") set(PLATFORM_CONFIG_L_FLAGS "-i ${CG_TOOL_ROOT}/lib --reread_libs --warn_sections --rom_model") # combine flags to C and C++ flags SET(CMAKE_C_FLAGS "${PLATFORM_CONFIG_C_FLAGS} ${CMAKE_C_FLAGS}" CACHE STRING "platform config c flags") SET(CMAKE_CXX_FLAGS "${PLATFORM_CONFIG_C_FLAGS} ${CMAKE_CXX_FLAGS}" CACHE STRING "platform config cxx flags") SET(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS}") SET(LIB "-l rtsv7R4_T_le_v3D16_eabi.lib") SET(CMD_SRCS "/Users/sramnath/lwip_blinky/lwip/CC1352P1_LAUNCHXL_TIRTOS.cmd") set(TARGET_NAME "cc1352p1_launchxl") # SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_CONFIG_L_FLAGS}" CACHE STRING "platform config linker exe files") set(LIB "liblwipboard.a") set(CMAKE_C_OUTPUT_EXTENSION ".obj") # cross-compiler # CMAKE_FORCE_C_COMPILER(${CMAKE_C_COMPILER}) #executable type set(CMAKE_EXECUTABLE_SUFFIX ".obj") SET(CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} --c_file=../main.c -z --map_file=${TARGET_NAME}.map --output_file=${TARGET_NAME} ${PLATFORM_CONFIG_L_FLAGS} ${CMD_SRCS} ${LIB} --include_path ${LWIP_INCLUDE_DIR} --verbose <OBJECTS>" CACHE STRING "linker executable") MESSAGE( STATUS "Compile flags for C: " ${CMAKE_C_FLAGS} ) MESSAGE( STATUS "Compile flags for asm: " ${CMAKE_ASM_FLAGS} ) MESSAGE( STATUS "linker flags for asm: " ${CMAKE_EXE_LINKER_FLAGS} ) MESSAGE( STATUS "linker executable is " ${CMAKE_C_LINK_EXECUTABLE} ) MESSAGE( STATUS "here is the compiler you are using " ${CMAKE_C_COMPILER}) add_executable(test ${cc1352p1_board_SRCS} "../main.c" ) The trouble is, "add_executable" by default adds a -o -c <source file> command, which is different from wha the armcl compiler is expecting (it expects a format that is given in the CMAKE_C_LINK_EXECUTABLE variable). As a result, it does not actually compile any of the source files to produce .o files and I am unable to build the project. How do I actually execute the command specified in the CMAKE_C_LINK_EXECUTABLE variable? When I remove the "add_executable" command, I get the following message : /usr/local/Cellar/cmake/3.15.5/bin/cmake -S/Users/sramnath/lwip_blinky/lwip - B/Users/sramnath/lwip_blinky/lwip/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/local/Cellar/cmake/3.15.5/bin/cmake -E cmake_progress_start /Users/sramnath/lwip_blinky/lwip/build/CMakeFiles /Users/sramnath/lwip_blinky/lwip/build/CMakeFiles/progress.marks /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/Makefile2 all make[1]: Nothing to be done for `all'. /usr/local/Cellar/cmake/3.15.5/bin/cmake -E cmake_progress_start /Users/sramnath/lwip_blinky/lwip/build/CMakeFiles 0 and when I do add it, I get /usr/local/Cellar/cmake/3.15.5/bin/cmake -S/Users/sramnath/lwip_blinky/lwip -B/Users/sramnath/lwip_blinky/lwip/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/local/Cellar/cmake/3.15.5/bin/cmake -E cmake_progress_start /Users/sramnath/lwip_blinky/lwip/build/CMakeFiles /Users/sramnath/lwip_blinky/lwip/build/CMakeFiles/progress.marks /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/Makefile2 all /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/depend cd /Users/sramnath/lwip_blinky/lwip/build && /usr/local/Cellar/cmake/3.15.5/bin/cmake -E cmake_depends "Unix Makefiles" /Users/sramnath/lwip_blinky/lwip /Users/sramnath/lwip_blinky/lwip /Users/sramnath/lwip_blinky/lwip/build /Users/sramnath/lwip_blinky/lwip/build /Users/sramnath/lwip_blinky/lwip/build/CMakeFiles/test.dir/DependInfo.cmake --color= Scanning dependencies of target test /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/build [ 50%] Building C object CMakeFiles/test.dir/main.c.o /Applications/ti_ccs9/ccs9/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/bin/armcl -I/Applications/ti_ccs9/ccs9/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/include -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -o CMakeFiles/test.dir/main.c.o -c /Users/sramnath/lwip_blinky/lwip/main.c >> WARNING: object file specified, but linking not enabled It seems to make the .o file, but when I try to link the files, I get the following message: [ 60%] Linking C static library liblwipboard.a /usr/local/Cellar/cmake/3.15.5/bin/cmake -P CMakeFiles/lwipboard.dir/cmake_clean_target.cmake /usr/local/Cellar/cmake/3.15.5/bin/cmake -E cmake_link_script CMakeFiles/lwipboard.dir/link.txt --verbose=1 /Applications/ti_ccs9/ccs9/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/bin/armar -av liblwipboard.a CMakeFiles/lwipboard.dir/CC1352P1_LAUNCHXL_fxns.c.o CMakeFiles/lwipboard.dir/CC1352P1_LAUNCHXL.c.o CMakeFiles/lwipboard.dir/ccfg.c.o ==> new archive 'liblwipboard.a' ==> building archive 'liblwipboard.a' --> error: 'CMakeFiles/lwipboard.dir/CC1352P1_LAUNCHXL_fxns.c.o' not found --> error: 'CMakeFiles/lwipboard.dir/CC1352P1_LAUNCHXL.c.o' not found --> error: 'CMakeFiles/lwipboard.dir/ccfg.c.o' not found make[2]: *** [liblwipboard.a] Error 1 make[2]: *** Deleting file `liblwipboard.a' make[1]: *** [CMakeFiles/lwipboard.dir/all] Error 2 make: *** [all] Error 2 Please let me know how I can proceed. -- Sent from: http://cmake.3232098.n2.nabble.com/ -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: https://cmake.org/mailman/listinfo/cmake