MantisBT - CMake |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0014210 | CMake | CMake | public | 2013-06-09 14:47 | 2013-06-11 16:01 |
|
Reporter | szx | |
Assigned To | Alex Neundorf | |
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | |
Platform | | OS | Windows 8 | OS Version | |
Product Version | | |
Target Version | | Fixed in Version | | |
|
Summary | 0014210: CMAKE_ASM_NASM_COMPILER is set to "nasm;yasm" instead of a full path |
Description | I have only yasm installed (no nasm) but CMake sets the CMAKE_ASM_NASM_COMPILER variable to "nasm;yasm" whereas in earlier versions (2.8.9?) it was set to the full path to the nasm/yasm compiler.
|
Steps To Reproduce | Test project:
project(test)
cmake_minimum_required(VERSION 2.8.11)
enable_language(ASM_NASM) |
Additional Information | |
Tags | No tags attached. |
Relationships | |
Attached Files | CMakeDetermineASM_NASMCompiler.cmake (1,011) 2013-06-10 18:28 https://public.kitware.com/Bug/file/4786/CMakeDetermineASM_NASMCompiler.cmake
CMakeDetermineASMCompiler.cmake (7,415) 2013-06-10 18:28 https://public.kitware.com/Bug/file/4787/CMakeDetermineASMCompiler.cmake |
|
Issue History |
Date Modified | Username | Field | Change |
2013-06-09 14:47 | szx | New Issue | |
2013-06-09 15:04 | Alex Neundorf | Assigned To | => Alex Neundorf |
2013-06-09 15:04 | Alex Neundorf | Status | new => assigned |
2013-06-09 15:42 | Alex Neundorf | Note Added: 0033259 | |
2013-06-09 18:00 | szx | Note Added: 0033260 | |
2013-06-09 18:17 | Alex Neundorf | Note Added: 0033261 | |
2013-06-10 04:24 | szx | Note Added: 0033262 | |
2013-06-10 04:26 | szx | Note Added: 0033263 | |
2013-06-10 04:27 | szx | Note Deleted: 0033263 | |
2013-06-10 04:27 | szx | Note Edited: 0033262 | bug_revision_view_page.php?bugnote_id=33262#r1183 |
2013-06-10 11:00 | szx | Note Added: 0033266 | |
2013-06-10 17:22 | Alex Neundorf | Note Added: 0033267 | |
2013-06-10 18:28 | Alex Neundorf | File Added: CMakeDetermineASM_NASMCompiler.cmake | |
2013-06-10 18:28 | Alex Neundorf | File Added: CMakeDetermineASMCompiler.cmake | |
2013-06-10 18:30 | Alex Neundorf | Note Added: 0033268 | |
2013-06-11 13:05 | szx | Note Added: 0033271 | |
2013-06-11 16:01 | Alex Neundorf | Note Added: 0033272 | |
2013-06-11 16:01 | Alex Neundorf | Status | assigned => closed |
2013-06-11 16:01 | Alex Neundorf | Resolution | open => fixed |
Notes |
|
(0033259)
|
Alex Neundorf
|
2013-06-09 15:42
|
|
Does that happen on a fresh buildtree, or do you already have something in the cache (CMakeCache.txt) ? |
|
|
(0033260)
|
szx
|
2013-06-09 18:00
|
|
|
|
(0033261)
|
Alex Neundorf
|
2013-06-09 18:17
|
|
Which generator are you using ? |
|
|
(0033262)
|
szx
|
2013-06-10 04:24
(edited on: 2013-06-10 04:27) |
|
I tried MinGW Makefiles and Visual Studio 10/11, none of them worked. Here's the output from the MinGW one:
The C compiler identification is GNU 4.8.0
The CXX compiler identification is GNU 4.8.0
Check for working C compiler: C:/mingw32/bin/gcc.exe
Check for working C compiler: C:/mingw32/bin/gcc.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working CXX compiler: C:/mingw32/bin/g++.exe
Check for working CXX compiler: C:/mingw32/bin/g++.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
The ASM_NASM compiler identification is unknown
Found assembler: nasm;yasm
CMake Error: your ASM_NASM compiler: "nasm;yasm" was not found. Please set CMAKE_ASM_NASM_COMPILER to a valid compiler path or name.
Configuring incomplete, errors occurred!
Interestingly, VS10 generator printed a weird error during configuration:
The C compiler identification is MSVC 16.0.30319.1
The CXX compiler identification is MSVC 16.0.30319.1
Check for working C compiler using: Visual Studio 10
Check for working C compiler using: Visual Studio 10 -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working CXX compiler using: Visual Studio 10
Check for working CXX compiler using: Visual Studio 10 -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
CMake Error at C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineASMCompiler.cmake:21 (if):
if given arguments:
"nasm" "yasm" "MATCHES" ".+"
Unknown arguments specified
Call Stack (most recent call first):
C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineASM_NASMCompiler.cmake:26 (include)
CMakeLists.txt:3 (enable_language)
CMake Error: Could not find cmake module file:C:/Users/szx/Desktop/test/build/CMakeFiles/2.8.11.1/CMakeASM_NASMCompiler.cmake
Configuring incomplete, errors occurred!
^ Looks like the if() condition was passed the same string "nasm;yasm" and interpreted it as a list.
|
|
|
(0033266)
|
szx
|
2013-06-10 11:00
|
|
Forgive my stupidness, it turns out I forgot to add yasm to the system PATH!
Though I must admit the contents of the CMAKE_ASM_NASM_COMPILER variable are somewhat misleading. Shouldn't it be set to an empty string on error? |
|
|
(0033267)
|
Alex Neundorf
|
2013-06-10 17:22
|
|
No, it's ok.
The detect compiler function was changed in 2.8.10 and the assembler support was not modified accordingly.
It seems instead of the _INIT variable the _LIST variable should be set.
I'll post a patch later today. |
|
|
(0033268)
|
Alex Neundorf
|
2013-06-10 18:30
|
|
Can you please put the two attached files in your cmake installation and see whether this makes it work better for you, both in the case that you have yasm in the PATH and that you don't have if it in the PATH ?
Thanks
Alex |
|
|
(0033271)
|
szx
|
2013-06-11 13:05
|
|
Now with the new files when yasm is not found CMAKE_ASM_NASM_COMPILER is set to CMAKE_ASM_NASM_COMPILER-NOTFOUND and I see "Didn't find assembler". When found it's set to the full path. |
|
|
(0033272)
|
Alex Neundorf
|
2013-06-11 16:01
|
|
Merged into next, so it should be in the next release.
|
|