Parcourir la source

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 il y a 14 ans
Parent
commit
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)