Hi, basically since January this year I am busy with adding support for the IAR compilers to cmake: http://public.kitware.com/Bug/view.php?id=10176
Main problem is that they run only under Windows, I don't have Windows, and I also already tried to get them installed on a ReactOS QEmu image, but didn't succeed, in the end some things didn't work. I think it should be 90 to 95% done, and from what I get from the emails of the two people who'd like to use it the only thing remaining is how to escape the "--dblib_config" switch (see attached toolchain file) properly, so the whitespace is handled properly. But somehow progress is quite slow, and the reply emails I get are not always completely satisfying... So, I pushed what I have so far now to staging, and it would be nice if somebody from you with a Windows machine could give it a try: http://cmake.org/gitweb?p=stage/cmake.git;a=shortlog;h=refs/heads/AddIARSupport The compiler can be downloaded here, after registering (for free): http://supp.iar.com/Download/SW/?item=EWARM-EVAL (I did that already, but didn't get it running under ReactOS in QEmu). I have a hello-world like example project here, which I could send you for testing. Alex
# ================================================================================================ # STM32_ToolchainCmake_Force.txt # This is the toolchain file for STM32 famliy using IAR compiler and No OS. # ================================================================================================ # This project started with CMake 2.8.2 set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_PROCESSOR STM32 ) set(CPU_VARIANT STM32F103 CACHE STRING "Choose a member of STM32 Family" ) # ------ Compiling -------- set(COMPILER_PATH "D:/Program Files/IAR Systems/Embedded Workbench 5.5" ) set(CMAKE_C_COMPILER ${COMPILER_PATH}/arm/bin/iccarm.exe ) set(CMAKE_CXX_COMPILER ${COMPILER_PATH}/arm/bin/iccarm.exe -eec++ ) set(CMAKE_ASM_COMPILER ${COMPILER_PATH}/arm/bin/iasmarm.exe) set(DLIBS "--dlib_config \"${COMPILER_PATH}/arm/inc/DLib_Config_Full.h\"") #set(DLIBS "--dlib_config \"D:/Program Files/IAR Systems/Embedded Workbench 5.5/arm/inc/DLib_Config_Full.h\"") set(CMAKE_C_FLAGS_INIT "--silent --endian=little --cpu=Cortex-M3 -e --fpu=None --dlib_config \\\"D:/Program Files/IAR Systems/Embedded Workbench 5.5/arm/inc/DLib_Config_Full.h\\\" ") set(CMAKE_CXX_FLAGS_INIT "--silent --endian=little --cpu=Cortex-M3 -e --fpu=None --dlib_config \\\"D:/Program Files/IAR Systems/Embedded Workbench 5.5/arm/inc/DLib_Config_Full.h\\\" ") # I guess these are necessary for compiling anything ? include_directories( ${COMPILER_PATH}/arm/inc ${COMPILER_PATH}/arm/inc/st ) # ------ Linking -------- set(link_file_icf "D:/Src/Embedded/KNX/stm32_knx_device/v1.0.0.0/etc/workspace/make/stm32f10x_flash.icf") # Is this the absolute minimum set of options necessary for linking ? set(CMAKE_EXE_LINKER_FLAGS "--config ${link_file_icf} --redirect _Scanf=_ScanfSmall --map ${PROJECT_NAME}.map --entry __iar_program_start " ) # search for programs in the build host directories set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
_______________________________________________ cmake-developers mailing list cmake-developers@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers