저는 Gradle을 처음 사용하고 크로스 플랫폼 빌드 스크립트를 만들려고합니다. 사용자 지정 원본 디렉터리를 사용하고 싶습니다. src/{ProjectName}/cpp 또는 헤더/{ProjectName}/cpp가 아닙니다. 내 원본 파일은 build.gradle 파일과 동일한 수준의 "src"및 "include"폴더에 있습니다.사용자 정의 소스 디렉토리를 추가 하시겠습니까?
어떻게 내가 만 소스 폴더에 링크 할 내 프로젝트 디렉토리 구조의 이미지를 참조하십시오? gradle cpp 라이브러리 예제는 이것을 다루지 않습니다. 내가 만든 스크립트는 성공적으로 빌드하지만 exe는 생성하지 않습니다. 나는 그것이 cpp 파일을 찾을 수 없기 때문에 나는 짐작한다.
더 나은 방법은 gradle이 사용하는 경로를 어떻게 확인할 수 있습니까? 옵션 - "- info"및 "-debug"가 사용 된 소스 경로를 출력하지 않는 것 같습니다.
다음은
apply plugin: 'cpp'
model {
buildTypes {
debug
release
}
platforms {
//osx_64 {
//architecture "x86_64"
//operatingSystem "osx"
//}
windows_x86 {
architecture "x86"
operatingSystem "windows"
}
windows_64 {
architecture "x86_64"
operatingSystem "windows"
}
}
repositories {
libs(PrebuiltLibraries) {
libcinder {
headers.srcDir "/../cinder/include/"
binaries.withType(StaticLibraryBinary) {
if (targetPlatform.operatingSystem.windows) {
if (targetPlatform == platforms.windows_x86) {
if(buildType == buildTypes.debug) {
staticLibraryFile = file("/../cinder/lib/msw/x86/Debug/v140/cinder.lib")
} else if(buildType == buildTypes.release) {
staticLibraryFile = file("/../cinder/lib/msw/x86/Release/v140/cinder.lib")
}
} else if(targetPlatform == platforms.windows_64) {
if(buildType == buildTypes.debug) {
staticLibraryFile = file("/../cinder/lib/msw/x64/Debug/v140/cinder.lib")
} else if(buildType == buildTypes.release) {
staticLibraryFile = file("/../cinder/lib/msw/x64/Release/v140/cinder.lib")
}
}
} //else if(targetPlatform.operatingSystem.o osx) {
//if (targetPlatform == platforms.osx_64) {
//if(buildType == buildTypes.debug) {
//staticLibraryFile = file("/../cinder/lib/macosx/Debug/libcinder.a")
//} else if(buildType == buildTypes.release) {
//staticLibraryFile = file("/../cinder/lib/macosx/Release/libcinder.a")
//}
//}
//}
}
}
}
}
components {
main(NativeExecutableSpec) {
sources {
cpp {
source {
srcDir "src"
include "include"
cpp.lib library: "libcinder", linkage: "static"
}
}
}
}
}
/*
components {
main(NativeExecutableSpec) {
sources {
cpp.lib library: "libcinder", linkage: "static"
}
}
}
*/
}
cpp 프로젝트 또는 java 프로젝트의 솔루션으로 사용하셨습니까? 귀하의 솔루션은 생각하지 Cpp를 위해 작동하지 않습니다. 나는 Cpp로 java를 대체 할 때 "인수에 대한 메소드 cpp()를 찾을 수 없습니다"라는 메시지가 나타납니다. 나는 cpp 플러그인도 사용하고 있습니다 (플러그인을 적용하십시오 : 'cpp'). – SRG