정의 플래그를 사용하여 빌드 할 두 개의 다른 대상을 선택할 수있는 프로젝트를 만들고 싶습니다.Boost와 Jamroot로 여러 대상을 작성하는 방법은 무엇입니까?
내 코드에서 예를 들어 나는
#ifdef LINUX
...
#else
...
#
Jamroot 파일에 두 목표 사이에서 선택하는 가장 좋은 방법은 무엇입니까 여러 섹션을 가지고 있음도 가능하다? 루트 디렉토리에 두 개의 서로 다른 Jamroot 파일을 만들고 bjam을 사용하여 호출해야합니까? 내가 매뉴얼 섹션에서 찾은 것부터 bjam을 특정 Jamroot 파일로 호출 할 수는 없습니다.
내 예제 Jammroot 파일이 다음과 같이 가정합니다.
project myproj_linux
:
requirements
<define>LINUX
;
exe myprog_linux:
test/Jamfile
myprog.cpp
;
myproj_ose와 같은 파일에 추가 프로젝트를 추가 할 수 있습니까? 아니면 어떻게해야합니까? 아니면 다른 Jamfiles를 가질 수 있습니까? 예를 들어 Jamroot가 지정한 대상에 따라 호출하는 하위 디렉토리에 Jamfile.linux가 있습니까?
내 제안이 가능하지 않은 경우 어떻게이 문제를 해결할 수 있습니까?
project myproj
: requirements
<target-os>linux:<define>LINUX
<target-os>windows:<define>WINDOWS
;
exe myprog : test/Jamfile myprog.cpp ;
당신은 docs 조건부 요구 사항에 대한 자세한 내용을보실 수 있습니다 :
그냥 질문입니다. 나는이 일부 플랫 폼만을 지원한다는 것을 보았습니다. 대상 OS 목록에없는 다른 플랫폼을 빌드하려고한다고 가정합니다. 가능한가? –
Euklides
참고로, 이것은 테스트되지 않았습니다. 그러나 사용자 설정에'feature.extend target-os :;'을 추가 할 수 있어야합니다. 그러면 Jamfiles에서 사용할 수있는 target-os에 값을 추가합니다. 끌어 오기 요청을 제출하여 BB에 직접 추가 할 수도 있습니다. –
GrafikRobot