[CMake] Assembler handling in 2.8.5 vs 2.8.4
Alexander Neundorf
a.neundorf-work at gmx.net
Wed Jul 20 16:11:41 EDT 2011
On Wednesday 20 July 2011, Florian Reinhard wrote:
> Hi,
>
> in 2.8.4 i added these lines to my project and had .asm files compiled
> correctly:
>
> ...set C/CXX compiler and how they are called...
> ENABLE_LANGUAGE(ASM)
> SET (CMAKE_ASM_COMPILE_OBJECT "<CMAKE_C_COMPILER> -fr=<OBJECT_DIR>
> -eo=.asm.obj <DEFINES> <FLAGS> <SOURCE>")
>
> PROJECT (myproject)
> ...add soruces, libraries and executables etc...
>
>
> with 2.8.5 i get this :
> ==============================================================
> -- Checked for GNU
> -- Output: ->> WARNING: invalid compiler option --version (ignored)
>
> >> ERROR: no source files, nothing to do
>
> -
> -- Result: -0-
> -- Checked for HP
> -- Output: ->> WARNING: invalid compiler option -V (ignored)
>
> >> ERROR: no source files, nothing to do
>
> -
> -- Result: -0-
> -- Checked for Intel
> -- Output: ->> WARNING: invalid compiler option --version (ignored)
>
> >> ERROR: no source files, nothing to do
>
> -
> -- Result: -0-
> -- Checked for SunPro
> -- Output: ->> WARNING: invalid compiler option -V (ignored)
>
> >> ERROR: no source files, nothing to do
>
> -
> -- Result: -0-
> -- Checked for XL
> -- Output: -TMS320C6x C/C++ Compiler v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
>
> TMS320C6x C/C++ Parser v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x EABI C/C++ Parser v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x C/C++ File Merge v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x C/C++ Optimizer v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x C/C++ Codegen v7.2.4
> Build Number 1LFFQ-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Consultant Generator v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Assembly Preprocessor v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Assembler v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Compressor v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Embed Utility v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x C Source Interlister v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Linker v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Absolute Lister v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Strip Utility v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x XREF Utility v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x C++ Demangler v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Hex Converter v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Library Builder v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Name Utility v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Object File Display v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> TMS320C6x Archiver v7.2.4
> Build Number 1LFFP-KDADEMDK-RTARQ-TAV-ZAZG_X_S_U
> -
> -- Result: -0-
> -- Checked for TI_DSP
> -- Output: -TMS320C6x C/C++ Compiler v7.2.4
>
> <THE WHOLE "cl6x --help" OUTPUT GOES HERE>
>
> -- Found assembler: c:/tools/cgtools-7.2.4/bin/cl6x.exe
> CMake Error at
> C:/tools/cmake/share/cmake-2.8/Modules/CMakeASMInformation.cmake:36
> (MESSAGE):
> Did not find file Compiler/TI_DSP-ASM
> Call Stack (most recent call first):
> CMakeLists.txt:42 (ENABLE_LANGUAGE)
> ==============================================================
>
> Unfortunately assembler support is not covered by the cmake docs
> shipped with the installation.
Damn, I was so sure I updated the wiki, but apparently I didn't.
So here are the old docs, but this changed quite a bit for 2.8.5:
http://www.vtk.org/Wiki/CMake/Assembler
What it does now:
the language "ASM" is now for assembler files which can be processed by your C
compiler. This actually seems to be the case for you.
Is the compiler ID of your compiler recognized by cmake ?
It seems like it isn't.
If it was, the assembler support would not try to figure out the "compiler ID"
for the assembler again, it would just use the compiler ID from C or CXX.
Can you please post the complete cmake output from some basic C project ?
Basically, what we should do, add support for your compiler toolchain, i.e.
add support for recognizing your compiler, and create files in
Modules/Compiler/TMS-C|CXX|ASM.cmake.
This doesn't require recompiling cmake, it is all in the modules files.
Then it should all work much better.
How do you compiler settings, toolchain file etc. look right now ?
Thanks
Alex
More information about the CMake
mailing list