176 lines
5.3 KiB
Lua
176 lines
5.3 KiB
Lua
set_project("NativeRenderPlugin")
|
|
|
|
set_languages("cxx20", "c11")
|
|
|
|
if (is_plat("windows")) then
|
|
add_defines("NOMINMAX")
|
|
add_cxflags("/EHsc")
|
|
end
|
|
|
|
option("use_dx11")
|
|
set_showmenu(true)
|
|
set_default(false)
|
|
|
|
option("use_dx12")
|
|
set_showmenu(true)
|
|
set_default(false)
|
|
|
|
option("use_vulkan")
|
|
set_showmenu(true)
|
|
set_default(false)
|
|
|
|
option("use_metal")
|
|
set_showmenu(true)
|
|
set_default(false)
|
|
|
|
option("use_gles")
|
|
set_default(false)
|
|
option_end()
|
|
|
|
target("GfxPluginNativeRender")
|
|
add_includedirs("./gl3w")
|
|
add_includedirs("./Unity")
|
|
|
|
add_headerfiles("./*.h")
|
|
|
|
if is_plat("windows") then
|
|
add_includedirs("C:/VulkanSDK/1.3.283.0/Include")
|
|
add_linkdirs("C:/VulkanSDK/1.3.283.0/Lib")
|
|
end
|
|
|
|
if is_plat("windows") then
|
|
set_kind("shared")
|
|
if has_config("use_dx11") then
|
|
add_defines("SUPPORT_D3D11=1")
|
|
end
|
|
if has_config("use_dx12") then
|
|
add_defines("SUPPORT_D3D12=1")
|
|
add_includedirs("external/include")
|
|
add_linkdirs("external/lib")
|
|
|
|
-- add_includedirs("features/")
|
|
-- add_headerfiles("features/**.h")
|
|
-- add_files("features/**.cpp")
|
|
end
|
|
end
|
|
|
|
if has_config("use_vulkan") then
|
|
set_kind("shared")
|
|
add_defines("SUPPORT_VULKAN=1")
|
|
-- add_links("EGL")
|
|
if is_plat("windows") then
|
|
add_links("vulkan-1")
|
|
else
|
|
add_links("vulkan")
|
|
end
|
|
if is_plat("android") then
|
|
local target = "aarch64-linux-android31"
|
|
add_cxflags("--target=" .. target)
|
|
add_asflags("--target=" .. target)
|
|
add_ldflags("--target=" .. target)
|
|
add_shflags("--target=" .. target)
|
|
end
|
|
end
|
|
-- xmake config -p macosx --use_gles=false --use_vulkan=false -a arm64 --use_metal=true --toolchain=xcode
|
|
-- xmake config -p iphoneos --use_gles=false --use_vulkan=false -a arm64 --use_metal=true
|
|
if has_config("use_metal") then
|
|
add_defines("SUPPORT_METAL=1")
|
|
add_ldflags("-fPIE", "-fPIC")
|
|
if is_plat("iphoneos") then
|
|
set_kind("static")
|
|
add_defines("TARGET_OS_IOS=1")
|
|
else
|
|
set_kind("shared")
|
|
add_cxflags("-shared")
|
|
add_defines("UNITY_OSX=1")
|
|
end
|
|
add_files("./*.mm")
|
|
add_frameworks("Metal")
|
|
add_frameworks("MetalKit")
|
|
add_frameworks("MetalFX")
|
|
end
|
|
if has_config("use_gles") then
|
|
set_kind("shared")
|
|
add_defines("SUPPORT_OPENGL_UNIFIED=1")
|
|
add_defines("SUPPORT_OPENGL_ES=1")
|
|
|
|
if not is_plat("windows") then
|
|
add_links("EGL")
|
|
add_links("GLESv3")
|
|
end
|
|
end
|
|
|
|
if is_plat("harmonyos") then
|
|
add_links("xengine")
|
|
add_cxxflags("-fPIE", "-fPIC")
|
|
add_ldflags("-fPIE", "-fPIC")
|
|
add_links("framegeneration")
|
|
add_defines("OHOS=1")
|
|
end
|
|
|
|
add_files("./*.cpp")
|
|
|
|
target_end()
|
|
|
|
|
|
-- xmake f --ndk=E:/NDK -a arm64-v8a -p android --use_gles=true --use_vulkan=true --vs=2022 -m debug
|
|
-- xmake f --toolchain=ohndk -p harmonyos -a aarch64 --use_gles=true --vs=2022 -m debug
|
|
toolchain("ohndk")
|
|
-- mark as standalone toolchain
|
|
set_kind("standalone")
|
|
-- set_bindir("C:/Users/xinyt/AppData/Local/OpenHarmony/Sdk/12/native/llvm/bin")
|
|
|
|
set_bindir("D:/tj/2022.3.48t2/Editor/Data/PlaybackEngines/OpenHarmonyPlayer/SDK/12/native/llvm/bin")
|
|
|
|
-- set toolset
|
|
set_toolset("cc", "clang")
|
|
set_toolset("cxx", "clang", "clang++")
|
|
set_toolset("ld", "clang++", "clang")
|
|
set_toolset("sh", "clang++", "clang")
|
|
set_toolset("ar", "llvm-ar")
|
|
set_toolset("ex", "llvm-ar")
|
|
set_toolset("strip", "llvm-strip")
|
|
set_toolset("mm", "llvm-mm")
|
|
set_toolset("mxx", "clang", "clang++")
|
|
set_toolset("as", "llvm-as")
|
|
|
|
add_defines("MYCLANG")
|
|
add_defines("OHOS_STL=c++_shared")
|
|
|
|
on_check(function (toolchain)
|
|
return true
|
|
end)
|
|
-- on load
|
|
on_load(function (toolchain)
|
|
-- init cxflags for the target kind: binary
|
|
toolchain:add("binary.cxflags", "-fPIE", "-pie")
|
|
|
|
-- add "-fPIE -pie" to ldflags
|
|
toolchain:add("ldflags", "-fPIE")
|
|
toolchain:add("ldflags", "-pie")
|
|
|
|
toolchain:add("ldflags", "-fPIC")
|
|
|
|
-- add some builtin flags
|
|
toolchain:add("cxflags", "-D__MUSL__")
|
|
|
|
local target = "aarch64-linux-ohos"
|
|
toolchain:add("cxflags", "--target=" .. target)
|
|
toolchain:add("asflags", "--target=" .. target)
|
|
toolchain:add("ldflags", "--target=" .. target)
|
|
toolchain:add("shflags", "--target=" .. target)
|
|
|
|
local sysroot = "C:/Users/xinyt/AppData/Local/OpenHarmony/Sdk/12/native/sysroot"
|
|
toolchain:add("cxflags", "--sysroot=" .. sysroot)
|
|
toolchain:add("asflags", "--sysroot=" .. sysroot)
|
|
toolchain:add("ldflags", "--sysroot=" .. sysroot)
|
|
toolchain:add("shflags", "--sysroot=" .. sysroot)
|
|
|
|
-- toolchain:add("includedirs", "C:/Program Files/Huawei/DevEco Studio/sdk/default/openharmony/native/sysroot/usr/include")
|
|
|
|
toolchain:add("includedirs", "C:/Program Files/Huawei/DevEco Studio/sdk/default/hms/native/sysroot/usr/include")
|
|
toolchain:add("linkdirs", "C:/Program Files/Huawei/DevEco Studio/sdk/default/hms/native/sysroot/usr/lib/aarch64-linux-ohos")
|
|
end)
|
|
toolchain_end()
|
|
|