2016-11-18 104 views
2

有谁知道如何将FASM支持添加到CMake?我试过一本原创指南here,但它对我不起作用。如何添加FASM支持到CMake

+2

'我已经试过了原来的莅临指导,但它并不适用于me.'工作 - 精心制作的,**究竟**不起作用。 – Tsyvarev

+0

我只是犯了一个错误 - 忘记在我的系统的PATH变量中包含fasm的路径。我是新来的,所以我应该在这里发布一个完整的解决方案? – alexfsx

回答

4

所以,我设法在我的CMake\share\cmake-3.7\Modules\目录(我使用Windows)说here添加三个文件:

  • CMakeDetermineASM_FASMCompiler.cmake

    set(ASM_DIALECT "_FASM") 
    set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST fasm) 
    include(CMakeDetermineASMCompiler) 
    set(ASM_DIALECT) 
    
  • CMakeTestASM_FASMCompiler .cmake

    set(ASM_DIALECT "_FASM") 
    include(CMakeTestASMCompiler) 
    set(ASM_DIALECT) 
    
  • CMakeASM_FASMInformation.cmake

    set(ASM_DIALECT "_FASM") 
    set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS s;asm) 
    set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <SOURCE> <OBJECT>") 
    include(CMakeASMInformation) 
    set(ASM_DIALECT) 
    

不要忘了包括FASM目录到PATH环境变量

和它的作品优雅!

2

@alexfsx的答案完美,不要忘记将enable_language(ASM_FASM)加入CMakeLists.txt。在这种情况下,通过将* .cmake文件放置到例如项目中来保留项目也是更好的办法。 cmake子文件夹并将其添加到模块搜索路径:

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")