Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 팁&트릭
Delphi Programming Tip&Tricks
[247] RAD Studio command prompt
DrK [whitekid] 6273 읽음    2008-06-17 15:58
언제부터인지 Delphi IDE의 새로운 기능중에 MSBuild build engine이 들어갔습니다. 오로하 이거 때문에 Build event가 가능하고나.. 하고만 생각했는데.. 이거 이용한 다른 활용법이 생각났네요.

다른 분들도 그렇겠지만 제 프로젝트에는 프로젝트 그룹에 프로젝트가 10개 남짓 구성됩니다. 이런 상황에서 배포하기 위해서 빌드하려면

   1. Project configuration manager에서 config를 Release로 변경
   2. Build All from here
   3. Setup build
   4. Deploy

이 런 식으로 하는데.. 이런 경우 좀 아쉬움이 남습니다. daily build같은 주기적인 build 테스트를 하기가 어려워서 그냥 아쉬움에 넘어갔습니다(물론 final builder나 want를 사용하면 되겠지만 final builder는 상용이라서, 또 그것을 살만할 정도의 아쉬움이 아니라서, want는 xml의 압박이 좀 심해서..싫은 귀차니즘으로).

그때 보인게 "시작메뉴 > CodeGear RAD Studio > RAD Studio command prompt" 라는 항목이 보입니다. 어? 이게 뭘까하고 실행하고 무심결에 MSBuild라고 입력하니 msbuild가 실행됩니다.. 오호라.. 그럼 혹시 msbuild project1.dproj 했더니 컴파일이 됩니다. 오... 그냥 자연스럽게 컴파일이 됩니다. Delphi 2007 이전 버전에서는 dcc32를 직접 실행해서 엄청 길게 라이브러리 패쓰 써주면서 했는데 아주 간단하게 됩니다.

시작메뉴로 실행하지 않고 한다면 rsvars.bat(빌드 환경 설정)를 실행하고 msbuild를 실행하면 됩니다.

MSBuild Project1.dproj /target:make /property:Configuraion=Debug /property:DCC_Define=DEBUG_VERSION


도움말 링크: ms-help://borland.bds5/devcommon/usingcommandlinebuild_xml.html

target=[clean|make|build] *)  중복 사용 가능 ex) clean;make or clean;build
/p:Configuraltion=[Debug|Release] *) 프로젝트 옵션의 Build configuration
/p:DCC_Define=[User defines] *) 여기에 user defines를 설정하게 되면 프로젝트 옵션에 있는 conditional defines를 override하기 때문에 주의하여 작성합니다. 만일 Release버전이라면 /p=DCC_Define=RELEASE;MYDEFINITION 이렇게 세미콜론으로 RELEASE도 추가해주여한다.

이걸 보고 내친김에 python으로 간단하게 프로젝트 build하고 InnoSetup으로 셋업 프로그램까지 만드는 스크립트를 만들었다. 호.. 이제 프로제트 릴리스하기 엄청 쉬워졌다. 노가다 작업이 한번에 끝나니 말이야..

사용한 스크립트의 중요 부분만 올립니다. 다 올리기엔 제 프로젝트에 너무 제한되어있어서.. ^^;

build.bat:
build 환경설정하고 빌드하는 배치파일
    @call rsvars.bat
    msbuild %1 /t:"%2" /p:Configuration=%3 /p:DCC_Define=%4
    @exit %ERRORLEVEL%


build.py:
build.py를 호출하는 python script
    def build(self, *args, projectFile, target, config, defines):
        params = {
            'file': self.projectFile,
            'target': 'clean;build',
            'config': 'Release',
            'defines': '%s;RELEASE' % self.edition,
        }
        return os.system('build.bat "%(file)s" "%(target)s" "%(config)s" "%(defines)s"' % params) == 0
양용성 [ysyang]   2008-07-01 09:36 X
오호 2007로 옮겨야 하는 큰 이슈가 되어버렸네요

+ -

관련 글 리스트
247 RAD Studio command prompt DrK 6273 2008/06/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.