下载最新正式版 链接:https://github.com/recastnavigation/recastnavigation/releases
Win平台编译 修改CMake文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 cmake_minimum_required (VERSION 3.22 )if ( WIN32 AND NOT CYGWIN AND NOT ( CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" ) ) set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT" CACHE STRING "" ) set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd" CACHE STRING "" ) set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT" CACHE STRING "" ) set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd" CACHE STRING "" ) endif ()if ( IOS ) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fembed-bitcode" ) set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fembed-bitcode" ) endif ()project (RecastDll)find_path (RecastDll_PROJECT_DIR NAMES SConstruct PATHS ${CMAKE_SOURCE_DIR} NO_DEFAULT_PATH ) MARK_AS_ADVANCED (RecastDll_PROJECT_DIR)file (GLOB RECASTDLL_SOURCES Source/*.cpp ../Detour/Source/*.cpp ../DetourCrowd/Source/*.cpp ../DetourTileCache/Source/*.cpp ../Recast/Source/*.cpp ) include_directories ( Include ../DebugUtils/Include ../Detour/Include ../DetourCrowd/Include ../DetourTileCache/Include ../Recast/Include ) macro (source_group_by_dir proj_dir source_files) if (MSVC OR APPLE) get_filename_component (sgbd_cur_dir ${proj_dir} ABSOLUTE) foreach (sgbd_file ${${source_files} }) get_filename_component (sgbd_abs_file ${sgbd_file} ABSOLUTE) file (RELATIVE_PATH sgbd_fpath ${sgbd_cur_dir} ${sgbd_abs_file} ) string (REGEX REPLACE "\(.*\)/.*" \\1 sgbd_group_name ${sgbd_fpath} ) string (COMPARE EQUAL ${sgbd_fpath} ${sgbd_group_name} sgbd_nogroup) string (REPLACE "/" "\\" sgbd_group_name ${sgbd_group_name} ) if (sgbd_nogroup) set (sgbd_group_name "\\" ) endif (sgbd_nogroup) source_group (${sgbd_group_name} FILES ${sgbd_file} ) endforeach (sgbd_file) endif (MSVC OR APPLE) endmacro (source_group_by_dir)source_group_by_dir(${CMAKE_CURRENT_SOURCE_DIR} RECASTDLL_SOURCES) if (APPLE) if (IOS) set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)" ) add_library (RecastDll STATIC ${RECASTDLL_SOURCES} ) else () set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)" ) add_library (RecastDll MODULE ${RECASTDLL_SOURCES} ) set_target_properties ( kcp PROPERTIES BUNDLE TRUE ) endif () else ( ) add_library (RecastDll SHARED ${RECASTDLL_SOURCES} ) endif ( )if ( WIN32 AND NOT CYGWIN ) target_compile_definitions (RecastDll PRIVATE DLL_EXPORTS) endif ( )
make_win64.bat 1 2 3 4 5 6 7 8 9 mkdir build64 & pushd build64 cmake -G "Visual Studio 16 2019" -A x64 .. popd cmake --build build64 --config Release md Plugins\x86_64 copy /Y build64\Release\RecastDll.dll Plugins\x86_64\RecastDll.dll rmdir /S /Q build64 pause
make_win32.bat 1 2 3 4 5 6 7 8 mkdir build32 & pushd build32cmake -G "Visual Studio 16 2019" .. popd cmake --build build32 --config Release md Plugins\x86 copy /Y build32\Release\RecastDll.dll Plugins\x86\RecastDll.dll rmdir /S /Q build32pause
Android平台编译 Android.mk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := RecastDll define walk $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e))) endef ALLFILES = $(call walk, $(LOCAL_PATH)/Source) ALLFILES += $(call walk, $(LOCAL_PATH)/../Detour/Source) ALLFILES += $(call walk, $(LOCAL_PATH)/../DetourCrowd/Source) ALLFILES += $(call walk, $(LOCAL_PATH)/../DetourTileCache/Source) ALLFILES += $(call walk, $(LOCAL_PATH)/../Recast/Source) FILE_LIST := $(filter %.c, $(ALLFILES)) FILE_LIST += $(filter %.cpp, $(ALLFILES)) FILE_LIST += $(filter %.cc, $(ALLFILES)) LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%) LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/Include\ $(LOCAL_PATH)/../DebugUtils/Include\ $(LOCAL_PATH)/../Detour/Include\ $(LOCAL_PATH)/../DetourCrowd/Include\ $(LOCAL_PATH)/../DetourTileCache/Include\ $(LOCAL_PATH)/../Recast/Include include $(BUILD_SHARED_LIBRARY)
Application.mk 1 2 3 4 5 6 7 APP_ABI:=all NDK_TOOLCHAIN_VERSION:=clang3.5 APP_STL:=c++_static APP_OPTIM:= release APP_BUILD_SCRIPT := Android.mk
make_android.bat 1 2 3 4 5 6 set path=D:\soft\android-ndk-r10endk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk pause
make_android.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 if [ -z "$ANDROID_NDK " ]; then export ANDROID_NDK=~/android-ndk-r10e fi mkdir -p build_v7a && cd build_v7acmake -DANDROID_ABI=armeabi-v7a -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-clang3.6 -DANDROID_NATIVE_API_LEVEL=android-9 ../ cd ..cmake --build build_v7a --config Release mkdir -p Plugins/Android/libs/armeabi-v7a/cp build_v7a/libRecastDll.so Plugins/Android/libs/armeabi-v7a/libRecastDll.sorm -rf build_v7amkdir -p build_x86 && cd build_x86cmake -DANDROID_ABI=x86 -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=x86-clang3.5 -DANDROID_NATIVE_API_LEVEL=android-9 ../ cd ..cmake --build build_x86 --config Release mkdir -p Plugins/Android/libs/x86/cp build_x86/libRecastDll.so Plugins/Android/libs/x86/libRecastDll.sorm -rf build_x86
MAC/IOS平台编译 make_ios.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 mkdir -p build_ios && cd build_ioscmake -DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.cmake -GXcode ../ cd ..cmake --build build_ios --config Release mkdir -p Plugins/iOS/exist_armv7=`lipo -info build_ios/Release-iphoneos/libkcp.a | grep armv7 | wc -l` exist_arm64=`lipo -info build_ios/Release-iphoneos/libkcp.a | grep arm64 | wc -l` if [ $[exist_armv7] -eq 0 ]; then echo "** ERROR **: No support for armv7, maybe XCode version is to high, use manual_build_ios instead!" elif [ $[exist_arm64] -eq 0 ]; then echo "** ERROR ** : No support for arm64, maybe XCode version is to high, use manual_build_ios instead!" else cp build_ios/Release-iphoneos/libRecastDll.a Plugins/iOS/libRecastDll.a rm -rf build_io fi
make_osx.sh 1 2 3 4 5 6 7 8 mkdir -p build_osx && cd build_osxcmake -GXcode ../ cd ..cmake --build build_osx --config Release mkdir -p Plugins/RecastDll.bundle/Contents/MacOS/cp build_osx/Release/RecastDll.bundle/Contents/MacOS/RecastDll Plugins/RecastDll.bundle/Contents/MacOS/RecastDllrm -rf build_osx
待写,没有环境…
编译工程下载 编译工程点此下载