2012-03-24 3 views
3

우리 프로젝트는 꽤 커졌고 빌드 시스템은 더 이상 확장되지 않았습니다. 우리는 리눅스 기계에서 크로스 플랫폼 개발을하고 있습니다. 우리는 빌드 할 수있는 플랫폼이 너무 많아 옵션을 더 많이 만들 수 있습니다. Makefile 기반 빌드 환경을 업그레이드해야한다고 생각합니다.linux build system tool

  • 고속 (그래서 아무 libtool이) 병렬를 할 수
  • 빌드
  • 크로스
  • 이 증가합니까 친화적
  • Ccache 통합을 컴파일 :

    은 (이상적으로) 요구 사항입니다 특정 조건이 충족되면 회로가 단락 될 수 있습니다 (a, b, c 옵션이 변경되지 않은 경우 회로가 단락되고 변경된 경우 단락 됨).
  • 쉽게 스크립트 할 수 있습니다 (파이썬 통합은 완벽 할 것입니다)
  • 사용자 친화적 인 구문
  • 분산 시스템. 모듈을 서로 별도로 개발할 수 있습니다.
  • autotools, cmake ..를 사용하는 타사 라이브러리를 빌드 할 수 있습니다.
  • 모듈 간 종속성을 추적 할 수 있지만 대체 가능한 외부 모듈로 모듈을 대체 할 수있을만큼 충분히 유연합니다.
  • 내장 단위 테스트 지원
  • 대형 바이너리 버전 관리 별도로 저장 될 수 있으며,
  • 오픈 소스를 추적 할 수
  • 필요한 경우 다운로드 할 수 있습니다
  • 자식 통합

가 있습니까 라이선스 당신은 이러한 요구 사항 중 일부 (적어도 일부)를 충족시킬 수있는 도구 (또는 도구 그룹)에 대해 알고 있습니까? 현재 나는 gyp + ninja에 기대고있다. 그러나 문법은 매우 친숙하지 않고 문서가 없습니다. 그래서 힘든 판매입니다.

+0

왜 즉시 libtool을 닫으시겠습니까? 현대 버전을 벤치마킹 해 보았으며 부적절하다고 확인 했습니까? –

+0

약 6 개월 전, 내 프로젝트 (~ 4K 파일) 중 하나를 gyp으로 이동했습니다. 이전에 configure/libtool 위에 구축되었습니다. 제작 시간은 20 대 중반에서 수십 (수분)으로 내려갔습니다. 지난 1 년 정도의 과감한 개선이 없었다면, 나는 내 진술 뒤에 서있다. BTW SSD가있는 다른 서버에서 시간 델타가 낮았습니다. –

답변

1

당신은 파이썬 통합을 언급 했으므로, SCons은 청구서에 맞는 것처럼 들립니다. 전적으로 Python을 기반으로합니다 (빌드 스크립트는 실제로 Python 스크립트입니다), 매우 유연하며 다른 많은 요구 사항을 충족시킵니다. 웹 사이트에서

:

SCons는 오픈 소스 소프트웨어 건설 도구입니다, 차세대 빌드 도구입니다. SCons는 autoconf/automake 및 ccache와 같은 컴파일러 캐시와 유사한 통합 기능을 갖춘 고전적인 Make 유틸리티 대신 개선 된 플랫폼 간 대체물로 생각하십시오. 간단히 말해, SCons는 소프트웨어를 구축하는 쉽고, 더 안정적이며 빠른 방법입니다.

1

C++와 관련하여 매우 훌륭한 빌드 시스템은 CMake입니다.

0

ninja는 CMake와 같은 다른 고급 빌드 도구가 아닌 최종 사용자가 사용하도록되어 있습니다. 그리고 이것은 특히 큰 프로젝트와 크로스 플랫폼 프로젝트의 경우 좋은 선택입니다. Python을 지원하지는 않지만 CMake를 사용하여 외부 스크립팅을 할 필요는 거의 없습니다. 일반적인 작업을위한 도구가 있습니다.