xmake v2.3.8 발표, Intel C++/Fortran 컴파일러 지원 추가
이 새 버전에서는 Intel 시리즈 C++와 Fortran 컴파일러에 대한 완전한 플랫폼 지원을 제공하여 이전 버전에 추가된 Wasm 도구 체인 지원을 개선하고 Wasm에 사용되는 Qt SDK도 지원합니다.
또한 Luajit를 최신 v2.1 버전으로 업그레이드합니다.크로스플랫폼 방면에서 xmake도 큰 개선을 했고 mps64 구조에 대한 지원을 추가했다.
새로운 기능 소개
Intel C++ 컴파일러 지원 추가
이 버전에서 우리는 윈도우즈의 icl과linux/macOS의 icc/icpc를 포함한 인텔 시리즈 C++ 컴파일러에 대해 완전한 플랫폼 지원을 제공했다.
Intel C++ 컴파일러를 사용하려면 Intel 컴파일러가 설치된 시스템에서
--toolchain=icc
매개 변수를 통해 적절한 도구 체인으로 전환하기만 하면 됩니다.$ xmake f --toolchain=icc
$ xmake
Intel Fortran 컴파일러 지원 추가
이전 버전에서, xmake는 gfortran 컴파일러만 지원합니다.이 버전에서는 Intel Fortran 컴파일러, 즉 iFortran도 지원합니다.우리는 상응하는 ifort 도구 체인으로 전환하기만 하면 그것을 사용할 수 있다.
$ xmake f --toolchain=ifort
$ xmake
Wasm 플랫폼 및 Qt/Wasm 지원 추가
이전 버전에서 우리는wasm 프로그램의 컴파일을 지원하기 위해
--toolchain=emcc
도구 체인을 추가했지만 도구 체인만 지정하면 목표 프로그램의 확장을 잘 조정할 수 없습니다. 예를 들어 *.js
에 대해 *.wasm
파일을 생성했습니다.새 버전에서 우리는
xmake f -p wasm
플랫폼을 계속 추가하여 내장된emcc 도구 체인을 사용했고 이를 바탕으로 주변 설정을 다시 개선했다.wasm 플랫폼으로 전환하면 기본적으로 xmake는
*.js
와 상응하는 *.wasm
및 기타 목표 파일을 생성하고 *.html
페이지를 생성합니다. 이 페이지는 js를 불러와wasm 프로그램을 실행할 수 있습니다.또한 Wasm에 사용되는 Qt SDK도 지원합니다. 예를 들어 Qt QuickApp 프로젝트를 만들었습니다.
$ xmake create -t qt.quickapp_static quickapp
여기에서 우리는 정적 링크가 필요한 Qt 프로젝트를 만들었다는 것을 알아차렸다.Qt 라이브러리의wasm 버전 때문에, 프로그램의 정적 링크를 강제로 사용해야 정상적으로 사용할 수 있습니다.생성된 프로젝트 파일 xmake의 내용입니다.lua는 다음과 같습니다.
add_rules("mode.debug", "mode.release")
includes("qt_add_static_plugins.lua")
target("demo")
add_rules("qt.quickapp_static")
add_headerfiles("src/*.h")
add_files("src/*.cpp")
add_files("src/qml.qrc")
add_frameworks("QtQuickControls2", "QtQuickTemplates2")
qt_add_static_plugins("QtQuick2Plugin", {linkdirs = "qml/QtQuick.2", links = "qtquick2plugin"})
qt_add_static_plugins("QtQuick2WindowPlugin", {linkdirs = "qml/QtQuick/Window.2", links = "windowplugin"})
qt_add_static_plugins("QtQuickControls2Plugin", {linkdirs = "qml/QtQuick/Controls.2", links = "qtquickcontrols2plugin"})
qt_add_static_plugins("QtQuickTemplates2Plugin", {linkdirs = "qml/QtQuick/Templates.2", links = "qtquicktemplates2plugin"})
상기 설정에서 qt.quickapp_static
컴파일 규칙을 사용하는 것 외에 우리는 qt_add_static_plugins
를 통해 필요한 Qt 플러그인을 설정했다.다음으로, 우리는wasm 플랫폼으로 전환하고, Qt SDK가 컴파일이 완료되었는지 확인하기만 하면 됩니다.
$ xmake f -p wasm [--qt=~/Qt]
$ xmake
컴파일이 완료되면 xmake가 프레젠테이션을 생성합니다.html와 상응하는 프레젠테이션.js/프레젠테이션.디렉터리에 있는wasm 프로그램을 생성합니다.우리는 시연을 열 수 있다.우리가 컴파일한 Qt 프로그램의 html 페이지를 실행합니다.다음과 같은 효과를 표시합니다.Qt/Wasm에 대한 자세한 내용은 다음을 참조하십시오. Issue #956
수학/부동 컴파일 최적화 설정 추가
우리는 수학 계산을 최적화하기 위해 부동점 컴파일링 모드를 설정하고 추상적인 설정을 컴파일하는 데 사용할 새로운
set_fpmodels()
설정 인터페이스를 추가했다.그것은 신속하고 엄격하며 예외적이고 정확하며 동시에 설정하고 충돌하며 마지막 설정이 효력을 발생시키는 몇 가지 상용 단계를 제공했다.이러한 수준에 대한 자세한 내용은 Microsoft 설명서를 참조하십시오.Specify floating-point behavior
물론 gcc/icc 등 다른 컴파일러에 대해 xmake는 서로 다른 컴파일러 로고에 비추게 됩니다.
set_fpmodels("fast")
set_fpmodels("strict")
set_fpmodels("fast", "except")
set_fpmodels("precise") - default
자세한 내용은 를 참조하십시오. Issue #981OpenMP 지원 추가
오픈mp 기능을 더욱 추상적이고 간단하게 사용하기 위해 새로 추가된
c.openmp
규칙과 c++.openmp
규칙을 통해 설정할 수 있습니다.또한 linux와 macOS에 추가된 libomp 라이브러리가 필요하기 때문에 빠른 참고와 통합을 위해 ʻAdd_requires ("libomp") 를 전달할 수 있습니다.lua
add_requires("libomp", {optional = true})
target("loop")
set_kind("binary")
add_files("src/*.cpp")
add_rules("c++.openmp")
add_packages("libomp")
If it is c code, you need to enable ʻadd_rules("c.openmp")`. If it is c/c++ mixed compilation, then these two rules must be set.
c11/c17 지원 추가
In the new version, xmake has also made improvements to set_languages
, 새로운 c11/c17 설정을 추가하였으며, 동시에 자체 적응과 자체 적응/std:c11
과/std:c17
는 최신 버전의 msvc에서 제공하였다.수수방관하다
간단한 설정만 하면 됩니다.
set_languages("c17")
msvc의 낮은 버전과 다른 컴파일러가 지원하지 않아도 xmake는 자동으로 이 설정을 무시합니다.
더 나은 Mingw 지원
이 개선에 관해서는 몇 가지 방면에 관련된다.우선 Windows 아래의 Mingw SDK 루트 디렉터리의 자동 검사를 개선했습니다.대부분의 경우, 우리는 경로를 명시적으로 지정하기 위해 --mingw=
파라미터를 설정할 필요가 없고, 경로를 자동으로 검사할 수도 있다.
자세한 내용은 를 참조하십시오. Issue #977
이 밖에 Msys2/Mingw와 macOS,linux/Mingw를 제외하고 우리는 새 버전에서 이 SDK를 지원하기 때문에 Mingw를 사용하여arm/arm64 구조의 프로그램을 컴파일할 수 있다.
$ xmake f -p mingw -a arm64
$ xmake
또한 원격 의존 패키지의 자동 컴파일과 통합에서 현재 CmakeList가 있는 제3자 라이브러리가 있습니다.ingw 플랫폼에서라도 xmake는 자동으로 컴파일하고 집적하여 직접 사용할 수 있기 때문에 매우 빠르고 편리하다.
최근에 llvm-mingw 공식 C/C++ 패키지 저장소에 우리는mingw 플랫폼을 지원하는 새로운 라이브러리를 많이 추가했는데 이 라이브러리들은 직접 사용할 수 있다.
xmake 리셋
플랫폼 간 작업 향상
우리는mips64 기반의 Linux 시스템 조작에 대한 지원을 추가하였으며, xmake가arm/arm64에서의 안정성을 향상시켰다.최신 luajit v2.1을 통합함으로써 우리는 luajit가 남긴 많은 문제, 예를 들어arm64에서lightuserdata의 문제를 해결했다.지침과 기타 문제.
arm64를 지원하기 위해 macOS Sierra 추가
xmake는 최신 Xcode 테스트 버전을 수정하고arm64 목표 프로그램 컴파일을 지원하기 위해macOs를 추가했습니다. arm64 구조 컴파일로 전환하면 됩니다.
$ xmake f -a arm64 [--xcode=Applications/Xcode-beta.app/]
$ xmake
물론 macOS에서 실행되고 개발자 변환 패키지(DTK)를 지원하는 최신 Xcode 테스트 버전을 사용하는 것이 전제 조건이다.
공식 저장소에 C/C++ 라이브러리 추가
xmake
의 공식 C/C++ 저장소에서 우리는 최근에 몇 십 개의 자주 사용하는 C/C++ 라이브러리를 추가하였으며,libx11 시리즈의 라이브러리도 포함하였다.
창고 포장 유지 보수 작업량이 매우 크지만 현재의 발전 추세도 갈수록 활발하다.우리는 점점 더 많은 사용자의 공헌을 받았고 창고 가방에 대한 유지보수를 개선했다.
그리고 현재 우리의 공식 창고는 linux,macOS,windows,mingw,bsd,msys,iphoneos,android 등 8개의 유니버설 플랫폼 라이브러리를 신속하게 통합하여 진정한 크로스플랫폼 C/C++ 원격 의존 라이브러리 통합과 사용 지원을 실현할 수 있다.
xmake-repo
현재 소프트웨어 패키지와 지원 플랫폼은 다음과 같습니다.
우리는 C/C++ 라이브러리의 생태적 혼란, 집적 및 사용이 번거로운 문제를 해결하고 신속하고 일치하는 자동 집적 및 컴파일 솔루션을 제공하기 위해 노력해 왔다.xmake는 vcpkg/conan/clib/homebrew 등 제3자 공식 창고 패키지의 통합을 지원할 뿐만 아니라 우리는 더욱 좋은 통합 체험을 실현하기 위해 자체 건설 공식 창고를 개선하기 위해 노력하고 있습니다.
예:
add_requires("tbox >1.6.1", "libuv master", "vcpkg::ffmpeg", "brew::pcre2/libpcre2-8")
add_requires("conan::openssl/1.1.1g", {alias = "openssl", optional = true, debug = true})
target("test")
set_kind("binary")
add_files("src/*.c")
add_packages("tbox", "libuv", "vcpkg::ffmpeg", "brew::pcre2/libpcre2-8", "openssl")
명칭 공간이 vcpkg::
, brew::
및 conan::
인 가방은 자동으로 해당하는 제3자 가방 창고로 전환하여 다운로드하고 집적합니다. 기본tbox >1.6.1
등 라이브러리는 기본적으로 공식 xmakerepo 저장소에서 제공하는 가방을 사용합니다.
사용과 집적 방법은 완전히 같다. xmake는 자동으로 다운로드, 컴파일, 집적, 링크를 할 것이다.
원격 패키지에 대한 의존 항목 통합에 대한 자세한 설명은 관련 문서를 볼 수 있습니다.PKGLIST.md
이 동시에 우리는 더 많은 사람들이 참여하여 C/C++ 도서관의 생태 건설을 개선하고 간결하고 일치하는 도서관 체험을 제공하는 것을 환영합니다.나는 C/C++ 패키지 관리와 라이브러리 생태가 러스트/고보다 더 나쁘지 않다고 믿는다.
원격 의존 관계 라이브러리의 통합과 사용
추가 버전 설치 지원
새 버전에서 우리는 xmake를 Ubuntu PPA 소스 코드에 제출할 것입니다. 따라서 기존의 스크립트 설치 방법 외에 apt를 통해 xmake를 신속하게 설치할 수 있습니다.
sudo add-apt-repository ppa:xmake-io/xmake
sudo apt update
sudo apt install xmake
또한 패키지를 Copr 패키지 관리 라이브러리에 제출하여 dnf를 통해 Fedora, RHEL, OpenSUSE, CentOS 및 기타 버전에 xmake를 신속하게 설치할 수 있도록 합니다.
sudo dnf copr enable waruqi/xmake
sudo dnf install xmake
변경 로그
새로운 기능
: zig 프로젝트 템플릿 추가
#955: wasm 플랫폼 추가 및 Qt/wasm SDK 지원 luajit vm 업그레이드 및 mps64 장치에서 실행 지원
#956: 의존 파일 추가를 간소화하기 위해 depend.on_changed()
api 추가
#972: 수학 최적화 모드 에 추가set_fpmodels()
#981: Intel C/C++ 및 Fortran 컴파일러 지원
#980: 지원c11
및 c17
MSVC 16.8 이상 버전
#986: OpenMP에 추상화를 추가합니다.add_rules("c++.openmp")
#979
바꾸다
: lvmmingw 도구 체인을 지원하기 위해mingw 플랫폼을 개선 여러 소프트웨어 패키지를 동시에 설치할 수 있도록 개선add_requires("zlib~xxx")
#958: 윈도우즈의find\umingw 개선
#977: 도구 체인 플래그 순서 개선 macOS/arm64 지원을 위한 Xcode 툴체인 개선
#978
버그 수정
: 윈도우즈에 대한 emcc 지원 복구
#951: filelock 오류 복구
Reference
이 문제에 관하여(xmake v2.3.8 발표, Intel C++/Fortran 컴파일러 지원 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/waruqi/xmake-v2-3-8-released-add-intel-c-fortran-compiler-support-hjj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)