[vitis] Vitis Unified CMake에서 하위 폴더 .c 자동 빌드하기

[vitis] CMakeLists 하위 폴더.c 자동 빌드

enter image description here

[vitis] Vitis Unified CMake에서 하위 폴더 .c 자동 빌드하기

문제 상황

Vitis Unified(2025.2)에서 Application을 만들면 기본 CMakeLists.txt 에 아래 코드가 들어 있다.

aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} current_dir_sources)
list(APPEND _sources ${current_dir_sources})

이 방식의 문제는 아래와 같다.

  • src 바로 아래의 .c 파일만 자동으로 포함
  • 하위 폴더(drivers/, hw/ 등)에 있는 .c 파일은 빌드에 포함되지 않음
  • .c 파일을 하나씩 수동으로 추가해야 하는 상황 발생

해결 방법

aux_source_directory()재귀 탐색을 지원하지 않는다.
하위 폴더까지 자동으로 포함하려면 file(GLOB_RECURSE) 를 사용해야 한다.

교체 코드

file(GLOB_RECURSE recursive_sources
     CONFIGURE_DEPENDS
     ${CMAKE_CURRENT_SOURCE_DIR}/*.c
)
list(APPEND _sources ${recursive_sources})
  • ${CMAKE_CURRENT_SOURCE_DIR} 기준
  • 모든 하위 디렉터리를 재귀적으로 탐색
  • .c 파일을 전부 수집해서 _sources에 추가
  • 새로운 .c 파일이 추가되면 CMake 자동 갱신

적용 전 / 후 비교

Before

src/
 ├─ main.c ✅
 ├─ drivers/
 │   └─ fan.c ❌ (빌드 안 됨)

After

src/
 ├─ main.c ✅
 ├─ drivers/
 │   └─ fan.c ✅ (자동 빌드)

끝 :)

댓글 쓰기

0 댓글