2014-12-19 2 views
1

SCons를 사용하여 다른 라이브러리 파일과 함께 컴파일 된 플랫폼 종속 소스 파일을 정적 라이브러리에 컴파일하고 최종 실행 파일에 링크하는 프로젝트가 있습니다. 프로젝트 파일은빌드를 건너 뛰어도 SCons에 플랫폼 종속 소스 생성

내가 구축 할 수있는 새로운 Xcode 프로젝트에서 외부 빌드 시스템으로 SCons는을 추가하고 소스 코드를 사용자 정의 실행

내가 지금 원하는 것은 디버깅을 관리하고 내 IDE (엑스 코드) 생성됩니다 외부 빌드 시스템으로 Scons를 제거하는 몇 개의 라이브러리를 추가하십시오. 내 경우 스콘 스는 실용적이지 않다. 너무 느리고 스크립트를 망치고 싶지 않다.

그래서 SCons에 빌드 프로세스를 건너 뛰고 플랫폼 종속 소스 파일을 생성하는 기능이 있는지 여부는 질문입니다.

편집 :

내가 풀 요청을 할 필요가 적어도까지 SCons는 몇 가지 프로젝트에 사용자 지정하지 혼란을하고 싶습니다, 그 있었다를 생성하기 위해 CMake를 사용하여 이전 프로젝트 내 workfow Xcode 프로젝트에서 SCons는 스크립트를 수정해야합니다.

답변

0

아래에서 코드처럼 SConstructExport() 재정 및 __SkipBuild의 값을 설정하는 스크립트에 매개 변수 skip_build를 추가, 난 단지 플랫폼을 생성 (즉, 컴파일 및 링크) 모두 빌드 프로세스를 생략 할 수 있었다 의존 소스

SConstruct

__Export = Export 
__CommandsList = ['CC','CXX','AR','RANLIB','AS','LINK'] # The commands to skip from the build process 
__SkipBuild = False 

def Export(*vars, **kw): 
    for var in vars: 
     locals()[var] = call_stack[-1].globals[var] 
     if (call_stack[-1].globals['__SkipBuild']): 
      for command in __CommandsList: 
       if locals()[var].has_key(command): 
        locals()[var][command] = 'echo ' + locals()[var][command] 
    call_stack[-1].globals.update(kw) 
    __Export(locals(), kw) 
1

예, 당신은 당신이 명시 적으로 명령 줄을 기반으로 얻을하고자하는 대상을 지정할 수 있습니다

scons lib1/source1.cpp sourceb.cpp 

이 예가 될 것입니다.

SCons가 너에게 너무 느릴 것이라고 언급 한 이래 정확히 측정 했습니까 (http://scons.org/wiki/WhySconsIsNotSlowhttp://scons.org/wiki/GoFastButton 참조)?

+0

대부분의 경우 몇 배 있도록보다 느리게 제 1 링크 쇼 SCons는의 ​​벤치 마크. 또한 SCons이 제 경우에 느린 이유에 대해 몇 가지 관찰을 추가하기 위해 질문을 업데이트하고 있습니다. – rraallvv

+0

예, 페이지의 나머지 부분에서는이 상황이 실제 환경에 거의 맞지 않는 특정 상황에서 관찰 된 이유와 SCons가 어떻게 가속화 될 수 있는지에 대해 설명합니다. 진정으로 SCons의 성능 문제가있는 경우, 필자는 SCons에 관해 듣고 상황을 개선하는 데 진정으로 관심이 있습니다. 하지만 최근 편집에서 나는 "당신은 단순히 SCons를 엉망으로 만들고 싶지 않습니다"라는 인상을 받았습니다 ... 저와 완벽하게 잘 맞습니다. 그러나 그것을 남겨 두자 ... 그러나 우리는 더 이상 논의 할 수있는 [email protected]로 여러분을 초대합니다. – dirkbaechle

관련 문제