삽질하는플머

라자루스의 Unit output directory

Lazarus

라자루스의 컴파일러 옵션 중 Unit output directory 의 경우 초기값이 비어있지만, 만약 이 값의 기본값이 "$TargetCPU()-$TargetOS()" 로 설정될 수 있다면 지금처럼 여러 운영체제를 테스트할 때 아주 편할 것이다.

compileroptionsdlg.pp 로 부터 추적을 시작해 보니, 라자루스의 프로젝트는 c:\lazarus\ide\project.pp 에 정의된 TProject형 객체인 Project1에 대부분의 옵션들이 저장되어있는 것으로 보인다.
이 놈의 TProjectCompilerOptions 형 멤버인 FCompilerOptions 에  UnitOutputDirectory 라는 프로퍼티가 있군.
따라서 Project1 이 생성될 때 이 값을 조절해주면 될 것 같다.

이 객체는 c:\lazarus\ide\main.pp 의 8248 라인에서 다음 코드로 생성된다.

Project1:=CreateProjectObject(ProjectDesc,ProjectDescriptorProgram);
try
  Project1.BeginUpdate(true);
  try
  ....


따라서 여기에서 내가 원하는 값을 지정 해 보자. 

Project1.CompilerOptions.UnitOutputDirectory:= '$TargetCPU()-$TargetOS()';


라자루스를 재빌드하고 다시 실행 시킨 후 새 프로젝트를 선택하고 Project -> Compiler Options 를 보자.


이야~~ 제대로 된다~~