2017-11-21 23 views
0

Atom Build package.atom-build.yml 파일을 사용하여 프로젝트 빌드 대상을 지정하므로 내 필요에 맞게 간단하게 .atom-build.yml을 만들었습니다. 하나의 작은 부분을 제외한 모든 것이 잘 작동합니다. 컨텍스트 아래 :args를 Atom의 .atom-build.yml에 공백으로 전달

targets: 
    Run CMake for Windows: 
     cmd: "cmake" 
     atomCommandName: "Create Makefiles with CMake" 
     args: 
      - "-Bbuild" 
      - "-H." 
      - "-G\"MinGW Makefiles\"" 

이 특정 대상에 나는 Build CMake가 작동되지 않는, cmake을 envoke하고 싶은, 또는 나는 그것을 사용하는 방법을 모른다. 사용시 패키지 빌드 cmd /C을 실행하여 cmd: 이후에 작성된 명령을 실행하고 인수는 args:입니다. 따라서, 아톰에 표시된 전화는 : I 대상에게 기본적으로 NMake Makefiles입니다 make 환경을 정의하고 내가 MinGW Makefiles을 가지고 싶습니다

cmd /C cmake -Bbuild -H. -G"MinGW Makefiles" 

옵션 -G으로. 위의 목표를 실행 한 후, cmake 오류가 발생합니다 :

CMake Error: Could not create named generator "MinGW 

... 가능한 모든 발전기를 나열합니다. 공간이 MinGW Makefiles이라면 분명히 Makefiles을 다음 인수로 이해할 수 있습니다. \^으로 탈출을 시도했지만 작동하지 않습니다. 또한, 단일 명령 행 호출에서 실행되므로 cmd 필드로 args를 이동하려고 시도했습니다.

내 질문은 : 어떻게 제대로 cmake에 전달 -G 옵션 아톰 빌드 패키지를 사용하여 위와 같이 cmake 목표를 실행하는 데?


편집 :

'-G "MinGW Makefiles"' 오류가 지속됩니다.

bad indentation of a sequence entry at line 15, column 19: 
       - "-G""MinGW Makefiles""" 
        ^
+0

공간을 이스케이프 처리해 보셨습니까? 예 : ''-G \ "MinGW \ Makefiles \" "' – idleberg

+0

내가 언급했듯이 :"\ and ^로 이스케이프를 시도했지만 작동하지 않습니다. " – Szczepan

+0

패키지에 익숙하지 않지만 쉘에 전달하기 전에 문자열에서 따옴표를 제거 할 수도 있습니다. –

답변

0

나는 위와 같이 매개 변수 cmake를 실행하는 다른 방법을 발견 : "-G ""MinGW Makefiles""" 원자와

오류가 발생합니다. 나는 구성된 PreLoad.cmake 파일 생성 :

set (CMAKE_MAKE_PROGRAM "C:/Program\ Files\ (x86)/GnuWin32/bin/make.exe" CACHE INTERNAL "" FORCE) 
set (CMAKE_GENERATOR "MinGW Makefiles" CACHE INTERNAL "" FORCE) 
set (EXECUTABLE_OUTPUT_PATH "build" CACHE INTERNAL "" FORCE) 

이 파일은 CMakeLists.txt 전에 cmake에 의해 envoked된다, 그래서 기본적에게 cmake 설정을 재정의합니다. 둘째, 나는 .atom-build.yml 수정 :

cmd: "g++" 
atomCommandName: "Compile and run with g++" 
name: "Compile and run single file C++ project" 
args: 
    - "{FILE_ACTIVE}" 
    - "-o {FILE_ACTIVE_PATH}/application.exe &&" 
    - "{FILE_ACTIVE_PATH}/application.exe" 
targets: 
    Run CMake: 
     cmd: "cmake ." 
     atomCommandName: "Create Makefiles with CMake" 
    Build Makefile project: 
     atomCommandName: "Make all" 
     cmd: "make" 
     args: 
      - "-j4" 
      - "all" 
    Run application: 
     atomCommandName: "Run application" 
     cmd: "{FILE_ACTIVE_PATH}/build/application.exe" 
    Full CMake build: 
     atomCommandName: "Full CMake build" 
     cmd: "cmake . && make -j4 all && {FILE_ACTIVE_PATH}/build/application.exe" 

작품 거의 완벽한 - 아톰 빌드 패키지가 입력을 지원하지 않습니다.


실행 :

cmd /C cmake -Bbuild -H. -G"MinGW Makefiles" -DCMAKE_MAKE_PROGRAM=make 

직접 명령 프롬프트 (또는 cmd /C없이), 작동합니다. 그래도 Atom에서 얻을 수 있습니다 :

The system cannot find the path specified. 

이것은 cmd 오류입니다. 나는 그것이 왜 지속되는지 전혀 모른다.

+0

또한 필자는이 작업에 필요한 파일을 생성하기 위해 스크립트 작업을하고 있으며 어딘가에 인터넷에 연결하여 여기 어딘가에 링크를 붙여 놓을 것입니다. – Szczepan