- cmake/cmake-gui
- 타겟이란? 만들려고 하는 목적물 이름
add_executable(Tutorial tutorial.cxx)
이 경우 윈도우 환경에서 Tutorial.exe 파일이 만들어지고 CMakeLists.txt에서 타켓이름은 Tutorial임
CMakeLists.txt
cmake_minimum_required(VERSION 3.10) #버전표시
project(Tutorial) #프로젝트명 표시
add_executable(Tutorial tutorial.cxx) # 실행파일 만들기
윈도우에서 CMake사용시 cl인지 gcc인지?
message(STATUS "C Compiler: ${CMAKE_C_COMPILER}")
message(STATUS "C++ Compiler: ${CMAKE_CXX_COMPILER}")
message(STATUS "C Compiler ID: ${CMAKE_C_COMPILER_ID}")
message(STATUS "C++ Compiler ID: ${CMAKE_CXX_COMPILER_ID}")
현재 타겟의 컴파일 옵션은?
#현재 CMakeListtxt에서 설정된것
get_target_property(TARGET_COMPILE_OPTIONS my_target COMPILE_OPTIONS)
#모든 타겟의 옵션 상속된것까지 /
get_target_property(ALL_COMPILE_OPTIONS my_target INTERFACE_COMPILE_OPTIONS)
add_definitions()
> 컴파일러에 전달할 전처리기 매크로(-D 옵션 포함)나 컴파일러 옵션을 추가
특정 컴파일러 대상으로
target_compile_definitions(my_target PRIVATE _UNICODE)
add_definitions(-D_UNICODE) #cl에 /D_UNICODE 로 전달, GCC/Clang: -D_UNICODE
이건 안됨 ? add_definitions(_UNICODE) #cl에 문자열로 전달됨
if (MSVC) #msvc빌드일때 있음
add_definitions(/D_UNICODE) # MSVC는 /D 사용
#안됨? add_definitions(/Wall) # MSVC는 /Wall 사용
add_compile_options(/Wall)
else()
add_definitions(-D_UNICODE) # GCC/Clang은 -D 사용
#안됨? add_definitions(-Wall) # GCC/Clang은 -Wall 사용
add_compile_options(-Wall)
endif()
add_definitions(-D_XX=1) 은 global scop #define _XX 1 와 동일