CMake 설명서 설명 (4)
CMake 설명서 설명 (4)
CMake 매뉴얼의 인사말을 끝내고 본론으로 들어가기 시작했다.첫 번째 부분은 CMake 명령입니다.명령은 명령행 아래 운영체제가 제공하는 각종 명령에 해당하며 중요성은 말하지 않아도 안다.이러한 명령은 CMake 구축 시스템의 뼈대라고 할 수 있습니다.CMake 2.8.3에는 다음과 같은 80개의 명령이 있습니다.custom_command, add_custom_target, add_definitions, add_dependencies, add_executable, add_library, add_subdirectory, add_test, aux_source_directory, break, build_command, cmake_minimum_required, cmake_policy, configure_file, create_test_sourcelist, define_property, else, elseif, enable_language, enable_testing, endforeach, endfunction, endif, endmacro, endwhile, execute_process, export, file, find_file, find_library, find_package, find_path, find_program, fltk_wrap_ui, foreach, function, get_cmake_property, get_directory_property, get_filename_component, get_property, get_source_file_property, get_target_property, get_test_property, if, include, include_directories, include_external_msproject, include_regular_expression, install, link_directories, list, load_cache, load_command, macro, mark_as_advanced, math, message, option, output_required_files, project, qt_wrap_cpp, qt_wrap_ui, remove_definitions, return, separate_arguments, set, set_directory_properties, set_property, set_source_files_properties, set_target_properties, set_tests_properties, site_name, source_group, string, target_link_libraries, try_compile, try_run, unset, variable_watch, while.이 명령들은 수첩에 사전순으로 배열되어 있다.찾기에 편리하도록 번역도 사전 순서에 따라 조직한다.그러나 번역이 끝난 후 명령에 대한 소결을 통해 이 명령의 사용 방법과 사용 시기를 논의할 예정이다.
==================================================================
CMD#1 : add_custom_command는 생성된 구축 시스템에 사용자 정의 구축 규칙을 추가합니다. add_custom_command 명령은 두 가지 주요 기능이 있다.첫 번째는 출력 파일을 만들기 위해 사용자 정의 명령을 추가하는 것입니다.
add_custom_command(OUTPUT output1 [output2 ...] COMMAND command1 [ARGS] [args1...] [COMMAND command2 [ARGS] [args2...] ...] [MAIN_DEPENDENCY depend] [DEPENDS [depends...]] [IMPLICIT_DEPENDS
이 명령 형식은 지정한 파일 (파일 그룹) 을 생성하는 생성 명령을 정의합니다.같은 경로에서 생성된 대상 (CMakeLists.txt 파일) 은 사용자 정의 명령의 출력이 원본 파일로 되어 있습니다. 구축할 때 지정한 명령을 사용하여 파일을 생성합니다.출력 파일 이름이 상대 경로라면 구축 트리 경로에 대한 상대 경로로 해석되고 현재 원본 경로와 대응합니다.주의, MAINDEPENDENCY는 비주얼 스튜디오에 사용자 정의 명령을 중단할 것을 제안하는 데 사용할 수 있습니다.이 명령은 다양한 유형의 makefile에서 다음과 같은 형식의 새 대상을 만듭니다.
OUTPUT: MAIN_DEPENDENCY DEPENDS COMMAND
하나 이상의 명령을 지정하면 순서대로 실행됩니다.ARGS 매개 변수는 선택할 수 있습니다. 이 매개 변수는 뒤로 호환되기 위해 존재하며, 이후에는 무시됩니다.
두 번째 형식은 라이브러리 파일이나 실행 가능한 파일 같은 목표입니다. 사용자 정의 명령을 추가합니다.이런 형식은 목표가 구축되기 전이나 구축된 후의 일부 조작에 사용할 수 있다.이 명령은 목표의 일부분이 되고 목표가 구축될 때만 실행됩니다.만약 목표가 이미 세워졌다면, 이 목표는 실행되지 않을 것이다.
add_custom_command(TARGET target PRE_BUILD | PRE_LINK | POST_BUILD COMMAND command1 [ARGS] [args1...] [COMMAND command2 [ARGS] [args2...] ...] [WORKING_DIRECTORY dir] [COMMENT comment] [VERBATIM])
이 명령은 지정한 목표의 구축 과정과 관련된 새로운 명령을 정의합니다.새 명령이 실행될 시기는 다음 옵션에 따라 결정됩니다.
PRE_BUILD - ; PRE_LINK - ; POST_BUILD - ;
PRE는 Visual Studio 7 이상 버전에서만 지원됩니다.BUILD.다른 생성기의 경우 PREBUILD는 PRE로 취급되고...LINK가 해.
WORKING이 지정되면...지정된 경로 아래에서 명령을 실행하는 DIRECTORY 옵션COMMENT 옵션을 설정하면 를 구성할 때, 를 구성하는 정보로, 명령을 실행하기 전에 이 매개변수가 표시됩니다.APPEND 옵션을 지정하면 COMMAND 및 DEPENDS 옵션의 값이 첫 번째 출력 파일의 사용자화 명령에 첨부됩니다.그 전에 같은 출력 파일을 매개 변수로 명령을 호출해야 합니다.현재 버전에서 APPEND 옵션, COMMENT, WORKING 을 지정하면DIRECTORY 및 MAINDEPENDENCY 옵션은 무시되지만 나중에 사용할 수 있습니다.
VERBATIM 옵션을 지정하면 모든 명령의 매개 변수가 알맞게 전의되어 구축 도구가 원래의 매개 변수로 구축 명령을 호출할 수 있도록 합니다.주의,addcustom_command에서 이 인자들을 볼 수 있기 전에 CMake 언어 프로세서가 이 인자들을 전의 처리합니다.올바른 동작을 보장하므로 VERBATIM 매개변수를 사용하는 것이 좋습니다.VERBATIM이 지정되지 않았을 때 CMake의 행동은 플랫폼에 의존한다. 왜냐하면 CMake는 특정한 도구의 특수 문자에 대해 보호 조치를 취하지 않았기 때문이다.
사용자 지정 명령의 출력이 실제 디스크 파일이 아닌 경우 SET 을 사용해야 합니다.SOURCE_FILES_PROPERTIES 명령은 출력된 속성을 SYMBOLIC로 표시합니다.
IMPLICIT_DEPENDS 옵션은 입력 파일의 억제된 종속성 검색을 요청합니다.주어진 언어 매개 변수 (문장의lang1 - 역주) 는 어떤 프로그래밍 언어를 사용해야 하는지를 지정하는 의존 스캐너입니다.현재까지는 C 및 CXX 언어 스캐너만 지원됩니다.검색에서 발견된 의존 파일은 컴파일할 때 사용자 정의 명령에 추가됩니다.참고, IMPLICITDEPENDS 옵션은 Makefile 생성기까지만 사용할 수 있으며 다른 생성기는 무시합니다.
COMMAND 옵션이 ADD EXECUTABLE 명령으로 생성된 대상을 지정하면 작성 시 실행 파일의 위치가 자동으로 바뀝니다.그리고 하나의 목표급의 의존성은 추가됩니다. 이 실행 가능한 목표는 사용자 정의 명령의 결과에 의존하는 모든 목표 이전에 구축됩니다.단, 이 실행 가능한 파일을 언제든지 다시 컴파일할 수 있으며, 사용자 정의 명령을 다시 실행할 수 있는 파일 수준의 의존을 도입하지 않습니다.
DEPENDS 옵션은 명령이 종속되는 파일을 지정합니다.의존 대상이 같은 디렉터리 (CMakeLists.txt 파일) 의 다른 사용자 정의 명령의 출력이라면, CMake는 자동으로 다른 사용자 정의 명령을 이 명령으로 가져옵니다.DEPENDS가 ADD * 명령으로 생성된 모든 유형의 목표를 지정하면 다른 대상이 이 사용자 정의 명령의 출력을 사용하기 전에 대상이 생성되었는지 확인하기 위해 대상 레벨의 의존성이 생성됩니다.그리고 이 목표가 실행 가능한 파일이나 라이브러리 파일이라면, 사용자 정의 명령이 대상이 다시 컴파일될 때 다시 실행될 수 있도록 파일 수준의 의존이 만들어집니다.
=======================================================
Unix Makefile에서 이 명령은 종속성 및 명시적 생성 명령을 추가하는 것과 같습니다.
<<<------------- 전재를 환영합니다.전재는 출처를 밝혀 주십시오. ----------->>>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.