Hi,

On Tuesday 15 March 2011, Robert Bielik wrote:
> Robert Bielik skrev 2011-03-15 08:59:
> > Using 2.8.4, I'm trying to add an assembler file with cmake (64 bit
> > VS2008 build), but I'm at a loss, I tried:
> >
> > ENABLE_LANGUAGE(ASM_MASM)
> > IF(NOT CMAKE_ASM_MASM_COMPILER_WORKS)
> > MESSAGE(FATAL_ERROR "No assembler found!")
> > ENDIF(NOT CMAKE_ASM-MASM_COMPILER_WORKS)
> >
> > but the ml64 assembler does not seem to be found, cmake output is:
> >
> > -- The ASM_MASM compiler identification is unknown
> > -- Didn't find assembler
> > -- Loaded CMakeASM_MASMInformation - ASM_MASM support is still
> > experimental, please report issues CMake Error at
> > common/external/cryptopp561/CMakeLists.txt:259 (MESSAGE): No assembler
> > found!
>
> Further information: In CMakeDetermineASMCompiler.cmake
> ${_CMAKE_USER_C_COMPILER_PATH} & ${_CMAKE_USER_CXX_COMPILER_PATH} aswell as
> ${_CMAKE_TOOLCHAIN_LOCATION} are empty.
>
> And even though I set CMAKE_ASM_MASM_COMPILER explicitly in advanced view,
> the added assembler file never gets built (its included in the project, but
> cannot be "compiled")

In current cmake master, there is this code in 
CMakeDetermineASMCompiler.cmake:

...
ELSE("ASM${ASM_DIALECT}" STREQUAL "ASM") # some specific assembler "dialect"

   IF(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT)
      SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST
          ${CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT})
   ELSE(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT)
      MESSAGE(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT must be
                           preset !")
    ENDIF(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT)

ENDIF("ASM${ASM_DIALECT}" STREQUAL "ASM")


# Find the compiler.
IF (_CMAKE_USER_CXX_COMPILER_PATH OR _CMAKE_USER_C_COMPILER_PATH)
   FIND_PROGRAM(CMAKE_ASM${ASM_DIALECT}_COMPILER
                NAMES ${CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST}
                PATHS ${_CMAKE_USER_C_COMPILER_PATH}
                      ${_CMAKE_USER_CXX_COMPILER_PATH}
                DOC "Assembler" NO_DEFAULT_PATH)
ENDIF (_CMAKE_USER_CXX_COMPILER_PATH OR _CMAKE_USER_C_COMPILER_PATH)
FIND_PROGRAM(CMAKE_ASM${ASM_DIALECT}_COMPILER
             NAMES ${CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST}
             PATHS ${_CMAKE_TOOLCHAIN_LOCATION} DOC "Assembler")


So, in your case, ${CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST} should be set 
to "ml" or "ml64".
This should then go into the second find_program() call, and there it should 
be found. The assembler should AFAIK be in the same directory as cl.exe.

Assembler support works currently only in the makefile-based generators.
For having assembler supported in VisualStudio contributions from users are 
needed (I don't have Windows, so I can't do that).

Alex
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to