CMake tips
x. Visual Studio에서 Debug와 Release Symbol이 같을때.
MSVC++는 Debug와 Release용 라이브러리를 따로 사용해야 한다. 이때, 빌드된 라이브러리들의 이름이 같다면 문제가 발생한다. (겹치므로)
관례적으로 Debug용 dll 이나 lib 뒤에는 d를 붙이는데, CMakelist.txt에 정의되어 있지 않은경우는 아래와 같은 옵션을 추가해 주면 된다.
-DCMAKE_DEBUG_POSTFIX=d
https://github.com/glfw/glfw/issues/875
1. 변수 set
변수는 set으로 만든다. 만약 값에 공백을 넣고 싶다면 앞에 (backslash)를 넣어주어야 한다.
마찬가지로 (backslash)를 쓰고 싶다면 C언어와 같이 2번 써야 한다.
set(BAR C:\\Program\ Files\\a.exe)
2. 개행문제
CMake는 변수 값을 아주 길게 썼을 때 약간의 문제가 발생한다. 바로 자동으로 개행이 추가되는데 왜 그런지는 모르겠다.
이럴 때는 일단 변수를 생성한 뒤 아래의 구문으로 개행을 없애야 한다.
string(REGEX REPLACE "\n$" "" <varname> "${<varname>}")
3. CMD or Shell 구문 실행
execute_process
로 쉘 명령을 실행 할 수 있다.
execute_process(COMMAND cmd /c "dir" WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE BAR)
위 구문은 dir명령을 PROJECT_SOURCE_DIR
위치에서 실행하고 (결과를 화면에 보여주며) BAR라는 변수에 결과값을 저장한다.
4. File download
아래와 같이 url과 location을 적어주면 간편하게 다운로드 할 수 있다.
file(DOWNLOAD https://github.com/springkim/leveldb/releases/download/bin/7z.dll ${PROJECT_SOURCE_DIR}/boost_build/7z.dll)
Author And Source
이 문제에 관하여(CMake tips), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@springkim/CMake-tips저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)