Explorar el Código

Got Polycode compiling in release with generated external libs! Just need to do some work to get Bullet and Box2D behaving in debug.

Cameron Hart hace 14 años
padre
commit
04a8c6eb3e

+ 2 - 0
Bindings/Contents/CMakeLists.txt

@@ -1,3 +1,5 @@
+FIND_PACKAGE(Lua51 REQUIRED)
+    
 INCLUDE(PolycodeIncludes)
 INCLUDE(PolycodeIncludes)
 
 
 INCLUDE_DIRECTORIES(
 INCLUDE_DIRECTORIES(

+ 3 - 4
CMake/ExternalAssimp.cmake

@@ -14,9 +14,8 @@ ExternalProject_Add(assimp
 ExternalProject_Get_Property(assimp install_dir)
 ExternalProject_Get_Property(assimp install_dir)
 
 
 INSTALL(DIRECTORY ${install_dir}/include 
 INSTALL(DIRECTORY ${install_dir}/include 
-    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}
-    FILES_MATCHING PATTERN "*.h")
+    DESTINATION ${POLYCODE_EXTERNALS_TOOLS_PREFIX})
 #INSTALL(DIRECTORY ${install_dir}/bin
 #INSTALL(DIRECTORY ${install_dir}/bin
-#    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}/bin)
+#    DESTINATION ${POLYCODE_EXTERNALS_TOOLS_PREFIX})
 INSTALL(DIRECTORY ${install_dir}/lib
 INSTALL(DIRECTORY ${install_dir}/lib
-    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}/lib)
+    DESTINATION ${POLYCODE_EXTERNALS_TOOLS_PREFIX})

+ 2 - 2
CMake/ExternalBox2D.cmake

@@ -25,6 +25,6 @@ INSTALL(DIRECTORY ${install_dir}/include
     DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}
     DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}
     FILES_MATCHING PATTERN "*.h")
     FILES_MATCHING PATTERN "*.h")
 #INSTALL(DIRECTORY ${install_dir}/bin
 #INSTALL(DIRECTORY ${install_dir}/bin
-#    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}/bin)
+#    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX})
 INSTALL(DIRECTORY ${install_dir}/lib
 INSTALL(DIRECTORY ${install_dir}/lib
-    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}/lib)
+    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX})

+ 2 - 2
CMake/ExternalBullet.cmake

@@ -31,6 +31,6 @@ INSTALL(DIRECTORY ${install_dir}/include
     DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}
     DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}
     FILES_MATCHING PATTERN "*.h")
     FILES_MATCHING PATTERN "*.h")
 #INSTALL(DIRECTORY ${install_dir}/bin
 #INSTALL(DIRECTORY ${install_dir}/bin
-#    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}/bin)
+#    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX})
 INSTALL(DIRECTORY ${install_dir}/lib
 INSTALL(DIRECTORY ${install_dir}/lib
-    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}/lib)
+    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX})

+ 2 - 2
CMake/ExternalOpenAL.cmake

@@ -17,6 +17,6 @@ INSTALL(DIRECTORY ${install_dir}/include
     DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}
     DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}
     FILES_MATCHING PATTERN "*.h")
     FILES_MATCHING PATTERN "*.h")
 INSTALL(DIRECTORY ${install_dir}/bin
 INSTALL(DIRECTORY ${install_dir}/bin
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin)
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX})
 INSTALL(DIRECTORY ${install_dir}/lib
 INSTALL(DIRECTORY ${install_dir}/lib
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/lib)
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX})

+ 2 - 2
CMake/ExternalPNG.cmake

@@ -28,8 +28,8 @@ INSTALL(DIRECTORY ${install_dir}/include
     DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}
     DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}
     FILES_MATCHING PATTERN "*.h")
     FILES_MATCHING PATTERN "*.h")
 INSTALL(DIRECTORY ${install_dir}/bin
 INSTALL(DIRECTORY ${install_dir}/bin
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin)
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX})
 INSTALL(DIRECTORY ${install_dir}/lib
 INSTALL(DIRECTORY ${install_dir}/lib
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/lib)
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX})
 
 
 
 

+ 2 - 2
CMake/ExternalPhysFS.cmake

@@ -17,8 +17,8 @@ INSTALL(DIRECTORY ${install_dir}/include
     DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}
     DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}
     FILES_MATCHING PATTERN "*.h")
     FILES_MATCHING PATTERN "*.h")
 INSTALL(DIRECTORY ${install_dir}/bin
 INSTALL(DIRECTORY ${install_dir}/bin
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin)
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX})
 INSTALL(DIRECTORY ${install_dir}/lib
 INSTALL(DIRECTORY ${install_dir}/lib
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/lib)
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX})
 
 
 
 

+ 1 - 1
CMake/ExternalVorbisFile.cmake

@@ -73,7 +73,7 @@ INSTALL(DIRECTORY ${source_dir}/${ogg_LIB_DIR}/
     DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin/
     DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin/
     FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
     FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 INSTALL(DIRECTORY ${source_dir}/${ogg_LIB_DIR}/
 INSTALL(DIRECTORY ${source_dir}/${ogg_LIB_DIR}/
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/libs/
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/lib/
     FILES_MATCHING PATTERN "*${CMAKE_LINK_LIBRARY_SUFFIX}")
     FILES_MATCHING PATTERN "*${CMAKE_LINK_LIBRARY_SUFFIX}")
 
 
 ExternalProject_Get_Property(vorbis source_dir)
 ExternalProject_Get_Property(vorbis source_dir)

+ 18 - 18
CMakeLists.txt

@@ -1,10 +1,11 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 
 
-PROJECT(PolyCode)
+PROJECT(Polycode)
 
 
 IF(NOT CMAKE_BUILD_TYPE)
 IF(NOT CMAKE_BUILD_TYPE)
     SET(CMAKE_BUILD_TYPE "Debug")
     SET(CMAKE_BUILD_TYPE "Debug")
-#   SET(CMAKE_BUILD_TYPE "Release")
+    #SET(CMAKE_BUILD_TYPE "Release")
+    MESSAGE("No CMAKE_BUILD_TYPE specified, defaulting to ${CMAKE_BUILD_TYPE}") 
 ENDIF(NOT CMAKE_BUILD_TYPE)
 ENDIF(NOT CMAKE_BUILD_TYPE)
 
 
 # Options for what components to build
 # Options for what components to build
@@ -16,28 +17,28 @@ OPTION(POLYCODE_BUILD_MODULES "Build Polycode modules" ON)
 OPTION(POLYCODE_BUILD_PLAYER "Build Polycode standalone player" ON)
 OPTION(POLYCODE_BUILD_PLAYER "Build Polycode standalone player" ON)
 OPTION(POLYCODE_BUILD_TOOLS "Build Polycode tools" ON)
 OPTION(POLYCODE_BUILD_TOOLS "Build Polycode tools" ON)
 
 
-# Download and build all dependencies on Windows and Mac
-IF(APPLE OR WIN32)
-	SET(common_externals ON)
-ELSE()
-	SET(common_externals OFF)
-ENDIF()
-
 OPTION(POLYCODE_INSTALL_FRAMEWORK "Install Polycode Core, Modules and Tools" ON)
 OPTION(POLYCODE_INSTALL_FRAMEWORK "Install Polycode Core, Modules and Tools" ON)
 
 
 # Some non-standard CMake modules
 # Some non-standard CMake modules
-SET(CMAKE_MODULE_PATH ${PolyCode_SOURCE_DIR}/CMake)
+SET(CMAKE_MODULE_PATH ${Polycode_SOURCE_DIR}/CMake)
+
+IF(NOT POLYCODE_RELEASE_DIR)
+    SET(POLYCODE_RELEASE_DIR ${Polycode_SOURCE_DIR}/Release/${CMAKE_SYSTEM_NAME})
+    MESSAGE("No POLYCODE_RELEASE_DIR specified, to ${POLYCODE_RELEASE_DIR}") 
+ENDIF(NOT POLYCODE_RELEASE_DIR)
+
+# set default externals install location
+SET(CMAKE_PREFIX_PATH 
+    ${POLYCODE_RELEASE_DIR}/Framework/Core/Dependencies
+    ${POLYCODE_RELEASE_DIR}/Framework/Modules/Dependencies
+    ${POLYCODE_RELEASE_DIR}/Framework/Tools/Dependencies)
 
 
-IF(WIN32)
-    SET(CMAKE_PREFIX_PATH ${PolyCode_SOURCE_DIR}/Release/Win/Framework/Dependencies)
-    SET(CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_PREFIX_PATH}/Lib/Release)
-ENDIF(WIN32)
+MESSAGE(DEBUG "CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}")
 
 
 # Process subdirectories
 # Process subdirectories
-ADD_SUBDIRECTORY(Core)
+ADD_SUBDIRECTORY(Core/Contents)
 
 
 IF(POLYCODE_BUILD_BINDINGS)
 IF(POLYCODE_BUILD_BINDINGS)
-    FIND_PACKAGE(Lua51 REQUIRED)
     ADD_SUBDIRECTORY(Bindings/Contents)
     ADD_SUBDIRECTORY(Bindings/Contents)
 ENDIF(POLYCODE_BUILD_BINDINGS)
 ENDIF(POLYCODE_BUILD_BINDINGS)
 
 
@@ -46,11 +47,10 @@ IF(POLYCODE_BUILD_EXAMPLES)
 ENDIF(POLYCODE_BUILD_EXAMPLES)
 ENDIF(POLYCODE_BUILD_EXAMPLES)
 
 
 IF(POLYCODE_BUILD_MODULES)
 IF(POLYCODE_BUILD_MODULES)
-    ADD_SUBDIRECTORY(Modules)
+    ADD_SUBDIRECTORY(Modules/Contents)
 ENDIF(POLYCODE_BUILD_MODULES)
 ENDIF(POLYCODE_BUILD_MODULES)
 
 
 IF(POLYCODE_BUILD_PLAYER)
 IF(POLYCODE_BUILD_PLAYER)
-    FIND_PACKAGE(Lua51 REQUIRED)
     ADD_SUBDIRECTORY(Player/Contents)
     ADD_SUBDIRECTORY(Player/Contents)
 ENDIF(POLYCODE_BUILD_PLAYER)
 ENDIF(POLYCODE_BUILD_PLAYER)
 
 

+ 0 - 13
Core/CMakeLists.txt

@@ -1,13 +0,0 @@
-FIND_PACKAGE(OpenGL REQUIRED)
-FIND_PACKAGE(PNG REQUIRED)
-FIND_PACKAGE(PhysFS REQUIRED)
-FIND_PACKAGE(OpenAL REQUIRED)
-FIND_PACKAGE(Freetype REQUIRED)
-FIND_PACKAGE(VorbisFile REQUIRED)
-
-# Use SDL on non-Apple unixes
-IF(UNIX AND NOT APPLE)
-    FIND_PACKAGE(SDL REQUIRED)
-ENDIF(UNIX AND NOT APPLE)
-
-ADD_SUBDIRECTORY(Contents)

+ 15 - 11
Core/Contents/CMakeLists.txt

@@ -1,4 +1,16 @@
+FIND_PACKAGE(OpenGL REQUIRED)
+FIND_PACKAGE(PNG REQUIRED)
+FIND_PACKAGE(PhysFS REQUIRED)
+FIND_PACKAGE(OpenAL REQUIRED)
+FIND_PACKAGE(Freetype REQUIRED)
+FIND_PACKAGE(VorbisFile REQUIRED)
 
 
+# Use SDL on non-Apple unixes
+IF(UNIX AND NOT APPLE)
+    FIND_PACKAGE(SDL REQUIRED)
+ENDIF(UNIX AND NOT APPLE)
+
+# set up common includes
 INCLUDE(PolycodeIncludes)
 INCLUDE(PolycodeIncludes)
 
 
 SET(polycore_SRCS
 SET(polycore_SRCS
@@ -214,9 +226,6 @@ IF(POLYCODE_BUILD_SHARED)
         ${SDL_LIBRARY}
         ${SDL_LIBRARY}
     )
     )
     ADD_LIBRARY(PolyCore SHARED ${polycore_SRCS} ${polycore_HDRS})
     ADD_LIBRARY(PolyCore SHARED ${polycore_SRCS} ${polycore_HDRS})
-    TARGET_LINK_LIBRARIES(
-        PolyCore
-    )
 ENDIF(POLYCODE_BUILD_SHARED)
 ENDIF(POLYCODE_BUILD_SHARED)
 
 
 IF(POLYCODE_BUILD_STATIC)
 IF(POLYCODE_BUILD_STATIC)
@@ -225,19 +234,14 @@ ENDIF(POLYCODE_BUILD_STATIC)
 
 
 IF(POLYCODE_INSTALL_FRAMEWORK)
 IF(POLYCODE_INSTALL_FRAMEWORK)
     # install headers
     # install headers
-    INSTALL(FILES ${polycore_HDRS} DESTINATION Framework/Core/Include)
+    INSTALL(FILES ${polycore_HDRS} DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Core/Include)
 
 
     # install libraries
     # install libraries
     IF(POLYCODE_BUILD_SHARED)
     IF(POLYCODE_BUILD_SHARED)
-        INSTALL(TARGETS PolyCore EXPORT PolyCore-targets DESTINATION Framework/Core/Lib/${CMAKE_BUILD_TYPE})
+        INSTALL(TARGETS PolyCore EXPORT PolyCore-targets DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Core/Lib/${CMAKE_BUILD_TYPE})
     ENDIF(POLYCODE_BUILD_SHARED)
     ENDIF(POLYCODE_BUILD_SHARED)
     
     
     IF(POLYCODE_BUILD_STATIC)
     IF(POLYCODE_BUILD_STATIC)
-        INSTALL(TARGETS PolyCore_static EXPORT PolyCore-targets DESTINATION Framework/Core/Lib/${CMAKE_BUILD_TYPE})
+        INSTALL(TARGETS PolyCore_static EXPORT PolyCore-targets DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Core/Lib/${CMAKE_BUILD_TYPE})
     ENDIF(POLYCODE_BUILD_STATIC)
     ENDIF(POLYCODE_BUILD_STATIC)
-
-    # from Box2D's cmake file - not sure what it does yet
-    # install build system hooks for third-party apps
-    # INSTALL(EXPORT PolyCore-targets DESTINATION Lib/Box2D)
-    # INSTALL(FILES Box2DConfig.cmake DESTINATION Lib/Box2D)
 ENDIF(POLYCODE_INSTALL_FRAMEWORK)
 ENDIF(POLYCODE_INSTALL_FRAMEWORK)

+ 0 - 4
Modules/CMakeLists.txt

@@ -1,4 +0,0 @@
-FIND_PACKAGE(Box2D)
-FIND_PACKAGE(Bullet)
-
-ADD_SUBDIRECTORY(Contents)

+ 2 - 0
Modules/Contents/2DPhysics/CMakeLists.txt

@@ -1,3 +1,5 @@
+INCLUDE(PolycodeIncludes)
+
 SET(polycode2DPhysics_SRCS
 SET(polycode2DPhysics_SRCS
     Source/PolyPhysicsScreen.cpp
     Source/PolyPhysicsScreen.cpp
     Source/PolyPhysicsScreenEntity.cpp
     Source/PolyPhysicsScreenEntity.cpp

+ 2 - 0
Modules/Contents/3DPhysics/CMakeLists.txt

@@ -1,3 +1,5 @@
+INCLUDE(PolycodeIncludes)
+
 SET(polycode3DPhysics_SRCS
 SET(polycode3DPhysics_SRCS
     Source/PolyPhysicsSceneEntity.cpp
     Source/PolyPhysicsSceneEntity.cpp
     Source/PolyPhysicsScene.cpp
     Source/PolyPhysicsScene.cpp

+ 2 - 2
Modules/Contents/CMakeLists.txt

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

+ 3 - 1
Player/Contents/CMakeLists.txt

@@ -1,6 +1,8 @@
+INCLUDE(PolycodeIncludes)
+    
 INCLUDE_DIRECTORIES(
 INCLUDE_DIRECTORIES(
     ${LUA_INCLUDE_DIR}
     ${LUA_INCLUDE_DIR}
-    ${PolyCode_SOURCE_DIR}/Bindings/Contents/LUA/Include
+    ${Polycode_SOURCE_DIR}/Bindings/Contents/LUA/Include
 )
 )
 
 
 IF(MSVC)
 IF(MSVC)

+ 0 - 4
Tools/CMakeLists.txt

@@ -1,4 +0,0 @@
-FIND_PACKAGE(Assimp REQUIRED)
-
-#SUB_DIRECTORY(Contents/polybuild)
-ADD_SUBDIRECTORY(Contents/polyimport)

+ 8 - 1
Tools/Contents/polybuild/CMakeLists.txt

@@ -1,4 +1,11 @@
-INCLUDE_DIRECTORIES(${PolyCode_SOURCE_DIR}/Tools/Dependencies/unzip11 Include)
+FIND_PACKAGE(ZLIB)
+
+INCLUDE(PolycodeIncludes)
+
+INCLUDE_DIRECTORIES(
+    ${ZLIB_INCLUDE_DIR}
+    ${Polycode_SOURCE_DIR}/Tools/Dependencies/unzip11 
+    Include)
 
 
 SET(minizip_SRCS 
 SET(minizip_SRCS 
     ../../Dependencies/unzip11/ioapi.c
     ../../Dependencies/unzip11/ioapi.c

+ 7 - 1
Tools/Contents/polyimport/CMakeLists.txt

@@ -1,4 +1,10 @@
-INCLUDE_DIRECTORIES(${PolyCode_SOURCE_DIR}/Core/Contents/Include Include ${ASSIMP_INCLUDE_DIR})
+FIND_PACKAGE(Assimp REQUIRED)
+
+INCLUDE(PolycodeIncludes)
+
+INCLUDE_DIRECTORIES(
+    ${ASSIMP_INCLUDE_DIR} 
+    Include)
 
 
 IF(POLYCODE_BUILD_SHARED)
 IF(POLYCODE_BUILD_SHARED)
     ADD_EXECUTABLE(polyimport Source/polyimport.cpp Include/polyimport.h)
     ADD_EXECUTABLE(polyimport Source/polyimport.cpp Include/polyimport.h)