Cmake 프로젝트 작성자 사용 가능

9월 초에 제가 Daily C++ Interview를 소개한 후에 제가 지난 몇 달 동안 공부한 또 다른 프로젝트를 여러분과 공유하도록 하겠습니다.Cmake Project Creator는 완전히 시작된 것이다. 기대Hacktoberfest한다면 파이톤을 말하고 C++에 관심이 있다면 흥미를 느낄 수 있다.

Cmake Project Creator의 내용은 무엇입니까?
C++ 개발자로서, 여러 파일이나 디렉터리를 어떻게 컴파일하는지 몰라서 새 프로젝트를 시작할 때 문제가 생겼습니까?아니면 작은 인코딩 Dojo 범위 내에서 실행 단위 테스트 프로젝트를 만드는 데 10-15분을 들일 시간이 전혀 없습니까?
전자는 나에게 절대적인 문제이고 후자는 Dojo를 작성할 때도 반복되는 문제이다.네가 한 가지 일을 할 시간이 그렇게 많을 때, 이 몇 분은 매우 중요하다.
Cmake Project Creator는 가능한 솔루션 중 하나입니다.이것은 새 C++ 프로젝트를 만드는 데 도움을 줄 수 있습니다.모든 CmakeList를 수동으로 작성하고 폴더를 만들 필요가 없습니다. 폴더를 간소화하거나, 첨부된 설정 실행 도구를 사용하거나, 설명을 직접 작성할 수 있습니다.

그것은 무엇을 일으켰습니까?
Cmake Project Creator는 필요한 모든 CMakeLists.txt 파일과 모든 파이프(지정하면)를 포함하는 디렉터리 구조를 만듭니다. 예를 들어 GTES와 같은 의존 항목을 포함합니다.또한 모든 구성 요소에서 클래스 프레임워크를 얻을 수 있으며, 테스트가 필요하면 실패한 단원 테스트를 생성하고 간단한 방법을 사용합니다.
우선, 왜 단원 테스트가 실패했습니까?새 구성 요소를 만들 때, 나는 예상한 실패를 보았는지 확인하기 위해 항상 실패 단언을 작성한다. 예를 들어 Conan그리고 나서 나는 그것을 고쳤다. 이렇게 하면 나는 그것이 일하는 것을 볼 수 있을 것이다.
프로젝트를 생성한 후 얻은 결과는 테스트에 실패했습니다.
그것을 호출하는 간단한 방법은 무엇입니까?
ASSERT_EQ(1, 2) runTests.sh라는 작은 스크립트를 만들었습니다. 이 스크립트는 지난번에 구축된 결과를 정리하고 외부 의존 항목을 가져오며 프로젝트를 컴파일하고 생성된 단원 테스트를 실행합니다.
Cmake Project Generator
그것을 어떻게 사용합니까?
설명자 파일을 어떻게 만드는지 자세히 설명하지 않겠습니다. 보실 수 있지만, 간단하게 말하면, 간단한 항목에 대해서 말하자면, 이것은 JSON 파일입니다. 매우 간단하고, 좀 복잡해질 수 있지만, 나는 그것이 여전히 수동으로 필요한 파일을 작성하는 것보다 쉽다고 생각합니다.
예를 들어 하나의 구성 요소와 단원 테스트를 포함하는 항목을 만들고 싶다면, 다음 구조를 원한다면 매개 변수 -s single 를 사용하여 이 도구를 호출할 수 있습니다.
myProject
|_ include
|_ src
|_ test

-s single 지시 도구는, 원본, 테스트 폴더를 포함하는 프로젝트를 만듭니다.GTEST는 Conan을 통해 셀 테스트를 수행합니다.
그런데 이 single 묘사부호는 어떻게 보입니까?보아하니 이렇다.
{
  "projectName": "MyTestProjectSingle",
  "directories": [{
      "name": "src",
      "type": "source",
      "library": null,
      "executable": "true",
      "include": "true",
      "dependencies": [],
      "subdirectories": []
    },
    {
      "name": "include",
      "type": "include",
      "subdirectories": []
    },
    {
      "name": "tests",
      "type": "tests",
      "dependencies": [{
        "type": "conan",
        "name": "gtest",
        "version": "1.8.1"
      }],
      "subdirectories": []
    }
  ]
}
각 필드의 의미를 더 깊이 있게 설명하려면 문서를 보십시오. 특히 문서가 바뀔 수도 있고, 문서가 본문이 아닌 업데이트될 수도 있습니다.이 예는 모든 CMakefiles 및 Conan 구성을 수동으로 작성하는 것과 비교하여 설명의 단순성만을 나타냅니다.
README for that
당신은 무엇을 할 수 있습니까?
에서 이 항목을 찾을 수 있으며 언제든지 볼 수 있습니다Github.사실, 당신이 어떤 일을 시작하기 전에, 나는 당신이 문제 옵션 카드를 검사해서 문제/새로운 기능이 벌금 고지서에 포함되어 있고, 아직 그것을 받아들이는 사람이 없는지 확인하는 것을 건의합니다.
이것은 요청한 변경 사항이 범위 내에 있는지 토론하는 방법으로, 누군가가 이미 같은 복구나 증강을 실시하기 시작했기 때문에 헛수고를 피할 수 있다.
우리는 Python3.8을 프로그래밍 언어로 사용합니다. 분명히 C++에 대해 알아야 하지만, 주로 issues tab입니다.셀 테스트의 경우 Nosetests를 사용합니다.
비기능 방면에서 일부 테스트가 결여되어 분명히 재구성이 필요하다.본문을 작성할 때 코드 커버율은 70% 이다.
기능 면에서 나는 아직 더 많은 것이 부족하다고 생각한다.다른 패키지 관리자 (현재는 Conan만 사용), 다른 컴파일러 (GCC 사용), 버전별 C++ (C++17 사용) 등을 지원합니다.
만약 당신이 재미있다고 생각한다면, "문제"옵션을 볼 수 있습니다.
CMake
결론, 결론
만약 사용한 IDE가 프로젝트, CMakeLists 파일을 생성하는 것을 책임진다면, 이 도구가 필요하지 않을 수도 있습니다.하지만 이 IDE를 사용하고 싶지 않다면 대부분 비용을 지불해야 한다. 마음에 들면 댓글과 스타를 남겨보자.
는 CMake와Conan 의존 관계를 바탕으로 새로운 C++ 프로젝트를 신속하게 생성할 수 있도록 도와 줍니다. 필요한 구조에 내장 옵션이 포함되어 있으면 몇 초 안에 인코딩을 시작할 수 있습니다. 그렇지 않으면 몇 분만 걸릴 수 있습니다.
수공으로 새로운 프로젝트를 세우는 것에 비하면, 이것은 분명히 승리이다.

좋은 웹페이지 즐겨찾기