Преглед изворни кода

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 пре 14 година
родитељ
комит
04a8c6eb3e

+ 2 - 0
Bindings/Contents/CMakeLists.txt

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

+ 3 - 4
CMake/ExternalAssimp.cmake

@@ -14,9 +14,8 @@ ExternalProject_Add(assimp
 ExternalProject_Get_Property(assimp install_dir)
 
 INSTALL(DIRECTORY ${install_dir}/include 
-    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}
-    FILES_MATCHING PATTERN "*.h")
+    DESTINATION ${POLYCODE_EXTERNALS_TOOLS_PREFIX})
 #INSTALL(DIRECTORY ${install_dir}/bin
-#    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}/bin)
+#    DESTINATION ${POLYCODE_EXTERNALS_TOOLS_PREFIX})
 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}
     FILES_MATCHING PATTERN "*.h")
 #INSTALL(DIRECTORY ${install_dir}/bin
-#    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}/bin)
+#    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX})
 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}
     FILES_MATCHING PATTERN "*.h")
 #INSTALL(DIRECTORY ${install_dir}/bin
-#    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX}/bin)
+#    DESTINATION ${POLYCODE_EXTERNALS_MODULES_PREFIX})
 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}
     FILES_MATCHING PATTERN "*.h")
 INSTALL(DIRECTORY ${install_dir}/bin
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin)
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX})
 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}
     FILES_MATCHING PATTERN "*.h")
 INSTALL(DIRECTORY ${install_dir}/bin
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin)
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX})
 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}
     FILES_MATCHING PATTERN "*.h")
 INSTALL(DIRECTORY ${install_dir}/bin
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin)
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX})
 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/
     FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 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}")
 
 ExternalProject_Get_Property(vorbis source_dir)

+ 18 - 18
CMakeLists.txt

@@ -1,10 +1,11 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 
-PROJECT(PolyCode)
+PROJECT(Polycode)
 
 IF(NOT CMAKE_BUILD_TYPE)
     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)
 
 # 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_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)
 
 # 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
-ADD_SUBDIRECTORY(Core)
+ADD_SUBDIRECTORY(Core/Contents)
 
 IF(POLYCODE_BUILD_BINDINGS)
-    FIND_PACKAGE(Lua51 REQUIRED)
     ADD_SUBDIRECTORY(Bindings/Contents)
 ENDIF(POLYCODE_BUILD_BINDINGS)
 
@@ -46,11 +47,10 @@ IF(POLYCODE_BUILD_EXAMPLES)
 ENDIF(POLYCODE_BUILD_EXAMPLES)
 
 IF(POLYCODE_BUILD_MODULES)
-    ADD_SUBDIRECTORY(Modules)
+    ADD_SUBDIRECTORY(Modules/Contents)
 ENDIF(POLYCODE_BUILD_MODULES)
 
 IF(POLYCODE_BUILD_PLAYER)
-    FIND_PACKAGE(Lua51 REQUIRED)
     ADD_SUBDIRECTORY(Player/Contents)
 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)
 
 SET(polycore_SRCS
@@ -214,9 +226,6 @@ IF(POLYCODE_BUILD_SHARED)
         ${SDL_LIBRARY}
     )
     ADD_LIBRARY(PolyCore SHARED ${polycore_SRCS} ${polycore_HDRS})
-    TARGET_LINK_LIBRARIES(
-        PolyCore
-    )
 ENDIF(POLYCODE_BUILD_SHARED)
 
 IF(POLYCODE_BUILD_STATIC)
@@ -225,19 +234,14 @@ ENDIF(POLYCODE_BUILD_STATIC)
 
 IF(POLYCODE_INSTALL_FRAMEWORK)
     # install headers
-    INSTALL(FILES ${polycore_HDRS} DESTINATION Framework/Core/Include)
+    INSTALL(FILES ${polycore_HDRS} DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Core/Include)
 
     # install libraries
     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)
     
     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)
-
-    # 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)

+ 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
     Source/PolyPhysicsScreen.cpp
     Source/PolyPhysicsScreenEntity.cpp

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

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

+ 2 - 2
Modules/Contents/CMakeLists.txt

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

+ 3 - 1
Player/Contents/CMakeLists.txt

@@ -1,6 +1,8 @@
+INCLUDE(PolycodeIncludes)
+    
 INCLUDE_DIRECTORIES(
     ${LUA_INCLUDE_DIR}
-    ${PolyCode_SOURCE_DIR}/Bindings/Contents/LUA/Include
+    ${Polycode_SOURCE_DIR}/Bindings/Contents/LUA/Include
 )
 
 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 
     ../../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)
     ADD_EXECUTABLE(polyimport Source/polyimport.cpp Include/polyimport.h)