mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-04 22:34:53 +08:00
- Updated spine-c to 3.2.01, adding shearing and transform constraints plus various bug fixes - Introduced CMake based system to generated IDE projects for spine-sfml, and download dependencies for all other runtimes - Updated all spine-c based runtime READMEs with new usage and example instructions - Moved spine-cocos2d-iphone v2 and spine-cocos2dx v2 to separate branches. These will no longer be updated - Renamed spine-cocos2d-iphone to spine-cocos2d-iphone Removed cocos2d-ios v2 Spine runtime. See branch cocos2d-ios-v2 for legacy apps Moved cocos2d-ios v3 Spine runtime to top-level sphine-cocos2d-iphone directory Added Visual Studio support to CMake build Added Linux support for spine-sfml. Do apt-get install sfml-dev as a prerequisit, makes everyone's life easier Refactored Mac OS X framework detection and linking, added SFML_STATIC define for Win32 build Removed spine-cocos2dx v2 runtime. See cocos2dx-v2 branch on Github Moved spine-cocos2dx v3 runtime to root of spine-cocos2dx spine-c, spine-cocos2d-iphone, spine-cocos2dx, spine-sfml updated to 3.2.00 * Added CMake build for spine-c and spine-sfml * Removed spine-cocos2dx v2 and spine-cocos2d-iphone v2. See the cocos2dx-v2 and cocos2d-ios-v2 branches if you need these runtimes still * Added transform constraint rotate, scale, and shear offsets and mixes * Added spTransformConstraintTimeline * Added bone shearing * Added spShearTimeline * Changed spSkeleton_updateCache * Changed JSON format, see http://esotericsoftware.com/spine-json-format Ported 1be89d1c5766fedb91f080a23bffaef6609b86c3 to spine-c Cleaned up spine-c, removed IDE specific files and unnecessary data/ folder. Use CMake to import into your most beloved IDE Added spine-cocos2d-iphone to CMake, only downloads cocos2d-objc dependency. Use Xcode project in spine-cocos2d-iphone/ to run examples Added -std=c98 -pedantic -Wall to spine-c CMake file, fixed up all warnings, fixed up .gitignore Fixed warnings, replaced calls to stdlib cos/sin/atan2 with macros New cocos2dx example project, for Windows, Linux and Mac OS X. Doesn't work on Windows/Linux yet Fixed spine-cocos2dx Visual Studio projects Reworked cocos2dx dependency resolution Fixed up src/header paths in CMake files. Dependencies are only downloaded if you build a specific runtime example Updated spine-sfml README with instructions for Windows Updated spine-sfml README with instructions for Linux and Mac OS X Fixed README formatting More formatting, sorry, can't preview markdown... More README changes Renamed spine-cocos2d-iphone to spine-cocos2d-objc, fixed up Xcode project and README Updated spine-cocos2d-objc README Added context when exceptions are thrown during attachment and animation parsing. Added JsonRollback, a tool for converting newer JSON so it can be loaded by an older Spine version. [Unity] Update BoneFollower Added coverting linkedmesh to weightedlinkedmesh. [LUA] AnimationState trackCount bugfixes (#466) * resolved conflict * made trackCount keep count, not maximum track index. Prettier with varargs. Updated .gitignore to exclude cocos2dx dependencies Fixed up READMEs of spine-c based runtimes with proper version info. Fixed cocos2d-x CMake build to delete outdated Spine runtime shipped by cocos2d-x
87 lines
3.6 KiB
CMake
87 lines
3.6 KiB
CMake
#
|
|
# First download and extract SFML 2.3.2 for the respective OS we are on
|
|
#
|
|
set(DEPS_DIR "${CMAKE_CURRENT_LIST_DIR}/dependencies/")
|
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
set(SFML_URL "http://www.sfml-dev.org/files/SFML-2.3.2-osx-clang-universal.tar.gz")
|
|
set(SFML_DIR ${DEPS_DIR}/SFML-2.3.2-osx-clang-universal)
|
|
if (NOT EXISTS "${SFML_DIR}")
|
|
message("Downloading SFML for Mac OS X")
|
|
file(DOWNLOAD "${SFML_URL}" "${DEPS_DIR}/sfml.tar.gz")
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E tar xzf ${DEPS_DIR}/sfml.tar.gz
|
|
WORKING_DIRECTORY ${DEPS_DIR}
|
|
)
|
|
# copy freetype over to Frameworks/ so rpath resoultion works
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${SFML_DIR}/extlibs/freetype.framework ${SFML_DIR}/Frameworks/freetype.framework
|
|
WORKING_DIRECTORY ${SFML_DIR}
|
|
)
|
|
endif()
|
|
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
set(SFML_URL "http://www.sfml-dev.org/files/SFML-2.3.2-linux-gcc-64-bit.tar.gz")
|
|
set(SFML_DIR ${DEPS_DIR}/SFML-2.3.2)
|
|
if (NOT EXISTS ${SFML_DIR})
|
|
message("Downloading SFML for Linux 64-bit")
|
|
file(DOWNLOAD "${SFML_URL}" "${DEPS_DIR}/sfml.tar.gz")
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E tar xzf ${DEPS_DIR}/sfml.tar.gz
|
|
WORKING_DIRECTORY ${DEPS_DIR}
|
|
)
|
|
endif()
|
|
else()
|
|
set(SFML_URL "http://www.sfml-dev.org/files/SFML-2.3.2-windows-vc14-32-bit.zip")
|
|
set(SFML_DIR ${DEPS_DIR}/SFML-2.3.2)
|
|
if (NOT EXISTS ${SFML_DIR})
|
|
message("Downloading SFML for Windows 32-bit")
|
|
file(DOWNLOAD "${SFML_URL}" "${DEPS_DIR}/sfml.zip")
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E tar x ${DEPS_DIR}/sfml.zip
|
|
WORKING_DIRECTORY ${DEPS_DIR}
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
# Define spine-sfml library
|
|
include_directories(src ${SFML_DIR}/include)
|
|
file(GLOB INCLUDES "src/**/*.h")
|
|
file(GLOB SOURCES "src/**/*.cpp")
|
|
add_library(spine-sfml STATIC ${SOURCES} ${INCLUDES})
|
|
target_link_libraries(spine-sfml LINK_PUBLIC spine-c)
|
|
install(TARGETS spine-sfml DESTINATION dist/lib)
|
|
install(FILES ${INCLUDES} DESTINATION dist/include)
|
|
|
|
# Define spine-sfml example executable
|
|
add_executable(spine-sfml-example example/main.cpp)
|
|
|
|
# Link in SFML libraries and OS dependencies like OpenGL
|
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
find_library(SFML SFML PATHS ${SFML_DIR}/Frameworks)
|
|
find_library(SFML_SYSTEM "sfml-system" PATHS ${SFML_DIR}/Frameworks)
|
|
find_library(SFML_WINDOW sfml-window PATHS ${SFML_DIR}/Frameworks)
|
|
find_library(SFML_GRAPHICS sfml-graphics PATHS ${SFML_DIR}/Frameworks)
|
|
target_link_libraries(spine-sfml-example ${SFML} ${SFML_SYSTEM} ${SFML_WINDOW} ${SFML_GRAPHICS})
|
|
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
target_link_libraries(spine-sfml-example sfml-graphics sfml-window sfml-system)
|
|
else()
|
|
set(SFML_LIBS ${SFML_DIR}/lib)
|
|
target_link_libraries(spine-sfml-example ${SFML_LIBS}/sfml-main-d.lib)
|
|
target_link_libraries(spine-sfml-example ${SFML_LIBS}/sfml-graphics-s-d.lib)
|
|
target_link_libraries(spine-sfml-example ${SFML_LIBS}/sfml-window-s-d.lib)
|
|
target_link_libraries(spine-sfml-example ${SFML_LIBS}/sfml-system-s-d.lib)
|
|
target_link_libraries(spine-sfml-example ${SFML_LIBS}/freetype.lib)
|
|
target_link_libraries(spine-sfml-example ${SFML_LIBS}/jpeg.lib)
|
|
target_link_libraries(spine-sfml-example opengl32)
|
|
target_link_libraries(spine-sfml-example gdi32)
|
|
target_link_libraries(spine-sfml-example winmm)
|
|
add_definitions(-DSFML_STATIC)
|
|
endif()
|
|
|
|
# copy data to build directory
|
|
add_custom_command(TARGET spine-sfml-example PRE_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
|
${CMAKE_CURRENT_LIST_DIR}/data $<TARGET_FILE_DIR:spine-sfml-example>/data)
|
|
|
|
target_link_libraries(spine-sfml-example spine-c)
|
|
target_link_libraries(spine-sfml-example spine-sfml)
|