Quellcode durchsuchen

Made some progress getting a Windows CMake build going.

Cameron Hart vor 14 Jahren
Ursprung
Commit
13acabc1e4

+ 2 - 0
.gitignore

@@ -45,6 +45,8 @@ Debug
 Release
 Documentation
 qtcreator-build
+build
+
 
 Tools/Build/Linux/polybuild*
 Tools/Build/Linux/polyimport*

+ 39 - 0
BUILD.txt

@@ -0,0 +1,39 @@
+Windows dependencies:
+
+Core
+
+zlib
+http://zlib.net/zlib125.zip
+
+PNG
+http://cdnetworks-us-1.dl.sourceforge.net/project/libpng/libpng15/1.5.2/lpng152.zip
+
+Freetype2
+http://surfnet.dl.sourceforge.net/project/freetype/freetype2/2.4.5/ft245.zip
+
+PhysFS
+http://offload1.icculus.org:9090/physfs/downloads/physfs-2.0.2.tar.gz
+
+OpenAL
+http://kcat.strangesoft.net/openal-releases/openal-soft-1.13.tar.bz2
+http://connect.creativelabs.com/openal/Downloads/oalinst.zip
+
+Ogg
+Vorbis
+http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.2.zip
+
+Lua
+http://www.lua.org/ftp/lua-5.1.4.tar.gz
+
+glext.h & wglext.h
+http://www.opengl.org/registry/#headers
+
+Build all and install to Releases/Win/Framework/Dependencies
+
+Modules
+
+Box2D
+http://box2d.googlecode.com/files/Box2D_v2.1.2.zip
+
+Bullet
+http://bullet.googlecode.com/files/bullet-2.78.zip

+ 9 - 2
Bindings/Contents/CMakeLists.txt

@@ -13,6 +13,13 @@ INCLUDE_DIRECTORIES(
     LUA/Include
 )
 
-ADD_LIBRARY(PolycodeLua SHARED ${polycodeLua_SRCS} ${polycodeLua_HDRS})
-ADD_LIBRARY(PolycodeLuaStatic ${polycodeLua_SRCS} ${polycodeLua_HDRS})
+IF(POLYCODE_BUILD_SHARED)
+    LINK_LIBRARIES(Polycore)
+    ADD_LIBRARY(PolycodeLua SHARED ${polycodeLua_SRCS} ${polycodeLua_HDRS})
+ENDIF(POLYCODE_BUILD_SHARED)
+
+IF(POLYCODE_BUILD_STATIC)
+    LINK_LIBRARIES(Polycore_static)
+    ADD_LIBRARY(PolycodeLua_static ${polycodeLua_SRCS} ${polycodeLua_HDRS})
+ENDIF(POLYCODE_BUILD_STATIC)
 

+ 55 - 17
CMakeLists.txt

@@ -3,38 +3,76 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 PROJECT(PolyCode)
 
 IF(NOT CMAKE_BUILD_TYPE)
-        SET(CMAKE_BUILD_TYPE "Debug")
-#	SET(CMAKE_BUILD_TYPE "Release")
+    SET(CMAKE_BUILD_TYPE "Debug")
+#   SET(CMAKE_BUILD_TYPE "Release")
 ENDIF(NOT CMAKE_BUILD_TYPE)
 
-IF(MSVC)
-	OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option" ON)
-	IF(USE_MSVC_FAST_FLOATINGPOINT)
-		ADD_DEFINITIONS(/fp:fast)
-	ENDIF(USE_MSVC_FAST_FLOATINGPOINT)
-ENDIF(MSVC)
+OPTION(POLYCODE_BUILD_SHARED "Build Polycode shared libraries" ON)
+OPTION(POLYCODE_BUILD_STATIC "Build Polycode static libraries" OFF)
+OPTION(POLYCODE_BUILD_BINDINGS "Build Polycode Lua bindings" ON)
+OPTION(POLYCODE_BUILD_EXAMPLES "Build Polycode examples" OFF)
+OPTION(POLYCODE_BUILD_MODULES "Build Polycode modules" ON)
+OPTION(POLYCODE_BUILD_TOOLS "Build Polycode tools" ON)
+
+# Some non-standard CMake modules
+SET(CMAKE_MODULE_PATH ${PolyCode_SOURCE_DIR}/Core/Build/CMake ${CMAKE_MODULE_PATH})
+
+IF(WIN32)
+    SET(CMAKE_PREFIX_PATH ${PolyCode_SOURCE_DIR}/Release/Win/Framework/Dependencies)
+ENDIF(WIN32)
 
 FIND_PACKAGE(OpenGL REQUIRED)
 FIND_PACKAGE(OpenAL REQUIRED)
 FIND_PACKAGE(Freetype REQUIRED)
 FIND_PACKAGE(PNG REQUIRED)
-FIND_PACKAGE(SDL REQUIRED)
-FIND_PACKAGE(Lua51)
+FIND_PACKAGE(VorbisFile REQUIRED)
+
+# Use SDL on non-Apple unixes
+IF(UNIX AND NOT APPLE)
+    FIND_PACKAGE(SDL REQUIRED)
+ENDIF(UNIX AND NOT APPLE)
 
 FIND_LIBRARY(VORBISFILE_LIBRARY NAMES vorbisfile)
 
-ADD_DEFINITIONS(-DGL_GLEXT_PROTOTYPES ${PNG_DEFINITIONS})
+# platform specific include directories for win and sdl
+IF(MSVC)
+    ADD_DEFINITIONS(/D_UNICODE /DUNICODE /DGL_GLEXT_PROTOTYPES)
+    INCLUDE_DIRECTORIES(${PolyCode_SOURCE_DIR}/Core/Build/MSVC/Polycore)
+ELSEIF(APPLE)
+    ADD_DEFINITIONS(-DGL_GLEXT_PROTOTYPES)
+ELSE(MSVC)
+#   ADD_DEFINITIONS(-DGL_GLEXT_PROTOTYPES) # defined in PolyGLRenderer.cpp
+    INCLUDE_DIRECTORIES(${PolyCode_SOURCE_DIR}/Core/Build/Linux)
+ENDIF(MSVC)
 
 INCLUDE_DIRECTORIES(
     ${OPENGL_INCLUDE_DIR}
+    ${OPENAL_INCLUDE_DIR}
     ${FREETYPE_INCLUDE_DIRS}
-    ${PolyCode_SOURCE_DIR}/Core/Build/Linux
     ${PolyCode_SOURCE_DIR}/Core/Contents/Include
 )
 
-ADD_SUBDIRECTORY(Bindings/Contents)
 ADD_SUBDIRECTORY(Core/Contents)
-ADD_SUBDIRECTORY(Examples/C++)
-ADD_SUBDIRECTORY(Modules/Contents)
-ADD_SUBDIRECTORY(Player/Contents)
-ADD_SUBDIRECTORY(Tools/Contents)
+
+IF(POLYCODE_BUILD_BINDINGS)
+    FIND_PACKAGE(Lua51 REQUIRED)
+    ADD_SUBDIRECTORY(Bindings/Contents)
+ENDIF(POLYCODE_BUILD_BINDINGS)
+
+IF(POLYCODE_BUILD_EXAMPLES)
+    ADD_SUBDIRECTORY(Examples/C++)
+ENDIF(POLYCODE_BUILD_EXAMPLES)
+
+IF(POLYCODE_BUILD_MODULES)
+    FIND_PACKAGE(Box2D)
+    FIND_PACKAGE(Bullet)
+    ADD_SUBDIRECTORY(Modules/Contents)
+ENDIF(POLYCODE_BUILD_MODULES)
+
+IF(POLYCODE_BUILD_PLAYER)
+    ADD_SUBDIRECTORY(Player/Contents)
+ENDIF(POLYCODE_BUILD_PLAYER)
+
+IF(POLYCODE_BUILD_TOOLS)
+    ADD_SUBDIRECTORY(Tools/Contents)
+ENDIF(POLYCODE_BUILD_TOOLS)

BIN
Core/Build/MSVC/Polycore/Polycore.suo


+ 30 - 21
Core/Contents/CMakeLists.txt

@@ -1,12 +1,8 @@
 SET(polycore_SRCS
-    ../Build/Linux/PolycodeView.cpp
     Source/OSBasics.cpp
-#   Source/PolyAGLCore.cpp
     Source/PolyBezierCurve.cpp
     Source/PolyBone.cpp
     Source/PolyCamera.cpp
-#   Source/PolyCocoaCore.cpp
-#   Source/PolycodeView.mm
     Source/PolyColor.cpp
     Source/PolyConfig.cpp
     Source/PolyCore.cpp
@@ -23,8 +19,6 @@ SET(polycore_SRCS
     Source/PolyFontManager.cpp
 #   Source/PolyGenericScene.cpp
     Source/PolyGLCubemap.cpp
-#   Source/PolyGLES1Renderer.cpp
-#   Source/PolyGLES1Texture.cpp
     Source/PolyGLRenderer.cpp
     Source/PolyGLSLProgram.cpp
     Source/PolyGLSLShader.cpp
@@ -33,7 +27,6 @@ SET(polycore_SRCS
     Source/PolyGLVertexBuffer.cpp
     Source/PolyImage.cpp
     Source/PolyInputEvent.cpp
-#    Source/PolyiPhoneCore.cpp
     Source/PolyLabel.cpp
     Source/PolyLogger.cpp
     Source/PolyMaterial.cpp
@@ -74,7 +67,6 @@ SET(polycore_SRCS
     Source/PolyScreenShape.cpp
     Source/PolyScreenSound.cpp
     Source/PolyScreenSprite.cpp
-    Source/PolySDLCore.cpp
     Source/PolyShader.cpp
     Source/PolySkeleton.cpp
     Source/PolySound.cpp
@@ -88,7 +80,6 @@ SET(polycore_SRCS
     Source/PolyVector2.cpp
     Source/PolyVector3.cpp
     Source/PolyVertex.cpp
-#   Source/PolyWinCore.cpp
     Source/tinystr.cpp
     Source/tinyxml.cpp
     Source/tinyxmlerror.cpp
@@ -96,16 +87,12 @@ SET(polycore_SRCS
 )
 
 SET(polycore_HDRS
-    ../Build/Linux/PolycodeView.h
     Include/OSBasics.h
-#   Include/PolyAGLCore.h
     Include/PolyBasics.h
     Include/PolyBezierCurve.h
     Include/PolyBone.h
     Include/PolyCamera.h
-#   Include/PolyCocoaCore.h
     Include/Polycode.h
-#   Include/PolycodeView.h
     Include/PolyColor.h
     Include/PolyConfig.h
     Include/PolyCore.h
@@ -122,8 +109,6 @@ SET(polycore_HDRS
     Include/PolyFontManager.h
     Include/PolyGenericScene.h
     Include/PolyGLCubemap.h
-#   Include/PolyGLES1Renderer.h
-#   Include/PolyGLES1Texture.h
     Include/PolyGlobals.h
     Include/PolyGLRenderer.h
     Include/PolyGLSLProgram.h
@@ -134,8 +119,6 @@ SET(polycore_HDRS
     Include/PolyImage.h
     Include/PolyInputEvent.h
     Include/PolyInputKeys.h
-#    Include/PolyiPhoneCore.h
-#    Include/Poly_iPhone.h
     Include/PolyLabel.h
     Include/PolyLogger.h
     Include/PolyMaterial.h
@@ -176,7 +159,6 @@ SET(polycore_HDRS
     Include/PolyScreenShape.h
     Include/PolyScreenSound.h
     Include/PolyScreenSprite.h
-    Include/PolySDLCore.h
     Include/PolyShader.h
     Include/PolySkeleton.h
     Include/PolySound.h
@@ -191,11 +173,38 @@ SET(polycore_HDRS
     Include/PolyVector2.h
     Include/PolyVector3.h
     Include/PolyVertex.h
-#   Include/PolyWinCore.h
     Include/tinystr.h
     Include/tinyxml.h
 )
 
-#ADD_LIBRARY(PolyCore SHARED ${polycore_SRCS} ${polycore_HDRS})
-ADD_LIBRARY(PolyCoreStatic ${polycore_SRCS} ${polycore_HDRS})
+# TODO: iPhone
+#    Include/PolyiPhoneCore.h
+#    Include/Poly_iPhone.h
+#    Source/PolyiPhoneCore.cpp
+
+# TODO: PolyGLES1
+#   Include/PolyGLES1Renderer.h
+#   Include/PolyGLES1Texture.h
+#   Source/PolyGLES1Renderer.cpp
+#   Source/PolyGLES1Texture.cpp
+
+# platform specific
+IF(MSVC)
+SET(polycore_SRCS ${polycore_SRCS} ../Build/MSVC/Polycore/PolycodeView.cpp Source/PolyWinCore.cpp)
+SET(polycore_HDRS ${polycore_HDRS} ../Build/MSVC/Polycore/PolycodeView.h Include/PolyWinCore.h)
+ELSEIF(APPLE)
+SET(polycore_SRCS ${polycore_SRCS} Source/PolyAGLCore.cpp Source/PolyCocoaCore.cpp Source/PolycodeView.mm)
+SET(polycore_HDRS ${polycore_HDRS} Include/PolyAGLCore.h Include/PolyCocoaCore.h Include/PolycodeView.h)
+ELSE(MSVC)
+SET(polycore_SRCS ${polycore_SRCS} ../Build/Linux/PolycodeView.cpp Source/PolySDLCore.cpp)
+SET(polycore_HDRS ${polycore_HDRS} ../Build/Linux/PolycodeView.h Include/PolySDLCore.h)
+ENDIF(MSVC)
+
+IF(POLYCODE_BUILD_SHARED)
+    ADD_LIBRARY(PolyCore SHARED ${polycore_SRCS} ${polycore_HDRS})
+ENDIF(POLYCODE_BUILD_SHARED)
+
+IF(POLYCODE_BUILD_STATIC)
+    ADD_LIBRARY(PolyCore_static ${polycore_SRCS} ${polycore_HDRS})
+ENDIF(POLYCODE_BUILD_STATIC)
 

+ 18 - 11
Examples/C++/CMakeLists.txt

@@ -1,14 +1,21 @@
-LINK_LIBRARIES(
-    PolyCoreStatic
-    ${SDL_LIBRARY}
-    ${SDLMAIN_LIBRARY}
-    ${OPENGL_LIBRARIES}
-    ${OPENAL_LIBRARY}
-    ${PNG_LIBRARIES}
-    ${FREETYPE_LIBRARIES}
-    ${PHYSFS_LIBRARY}
-    ${VORBISFILE_LIBRARY}
-)
+IF(POLYCODE_BUILD_SHARED)
+    LINK_LIBRARIES(PolyCore)
+ELSEIF(POLYCODE_BUILD_STATIC)
+    LINK_LIBRARIES(
+        PolyCore_static
+        ${OPENGL_LIBRARIES}
+        ${OPENAL_LIBRARY}
+        ${PNG_LIBRARIES}
+        ${FREETYPE_LIBRARIES}
+        ${PHYSFS_LIBRARY}
+        ${VORBISFILE_LIBRARY}
+    )
+
+    # using SDL
+    IF(SDL_FOUND)
+        LINK_LIBRARIES(${SDL_LIBRARY} ${SDLMAIN_LIBRARY})
+    ENDIF(SDL_FOUND)
+ENDIF(POLYCODE_BUILD_SHARED)
 
 ADD_SUBDIRECTORY(2DShapes)
 ADD_SUBDIRECTORY(2DTransforms)

+ 7 - 2
Modules/Contents/CMakeLists.txt

@@ -1,4 +1,9 @@
 INCLUDE_DIRECTORIES(../Dependencies/Include)
 
-ADD_SUBDIRECTORY(2DPhysics)
-ADD_SUBDIRECTORY(3DPhysics)
+IF(BOX2D_FOUND)
+    ADD_SUBDIRECTORY(2DPhysics)
+ENDIF(BOX2D_FOUND)
+
+IF(BULLET_FOUND)
+    ADD_SUBDIRECTORY(3DPhysics)
+ENDIF(BULLET_FOUND)