Przeglądaj źródła

Got Bullet compiling and linking

Cameron Hart 14 lat temu
rodzic
commit
2567931838
2 zmienionych plików z 32 dodań i 6 usunięć
  1. 3 4
      CMakeLists.txt
  2. 29 2
      Modules/CMakeLists.txt

+ 3 - 4
CMakeLists.txt

@@ -1,4 +1,4 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 
 PROJECT(PolyCode)
 
@@ -18,12 +18,13 @@ OPTION(POLYCODE_BUILD_TOOLS "Build Polycode tools" ON)
 
 # Options for what components should be downloaded and built
 OPTION(POLYCODE_BUILD_BOX2D "Download and build the Box2D package" ON)
+OPTION(POLYCODE_BUILD_BULLET "Download and build the Bullet package" ON)
 OPTION(POLYCODE_BUILD_ASSIMP "Download and build the Assimp package" ON)
 
 OPTION(POLYCODE_INSTALL_FRAMEWORK "Install Polycode Core, Modules and Tools" ON)
 
 # Some non-standard CMake modules
-SET(CMAKE_MODULE_PATH ${PolyCode_SOURCE_DIR}/Build/CMakeModules ${CMAKE_MODULE_PATH})
+SET(CMAKE_MODULE_PATH ${PolyCode_SOURCE_DIR}/Build/CMakeModules)
 
 IF(WIN32)
     SET(CMAKE_PREFIX_PATH ${PolyCode_SOURCE_DIR}/Release/Win/Framework/Dependencies)
@@ -76,8 +77,6 @@ IF(POLYCODE_BUILD_EXAMPLES)
 ENDIF(POLYCODE_BUILD_EXAMPLES)
 
 IF(POLYCODE_BUILD_MODULES)
-    #FIND_PACKAGE(Box2D)
-    FIND_PACKAGE(Bullet)
     ADD_SUBDIRECTORY(Modules)
 ENDIF(POLYCODE_BUILD_MODULES)
 

+ 29 - 2
Modules/CMakeLists.txt

@@ -2,7 +2,7 @@ IF(POLYCODE_BUILD_BOX2D)
     
     INCLUDE(ExternalProject)
 
-    SET(box2d_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/Dependencies/Box2D)
+    SET(box2d_PREFIX ${PROJECT_BINARY_DIR}/Modules/Dependencies/Box2D)
     
     # Needs fpic to link in shared lib on Linux
     IF(CMAKE_COMPILER_IS_GNUCXX)
@@ -20,9 +20,36 @@ IF(POLYCODE_BUILD_BOX2D)
         CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DBOX2D_BUILD_EXAMPLES=OFF ${box2d_CXX_ARGS}
     )
     
-    SET(CMAKE_PREFIX_PATH ${box2d_PREFIX})
+    SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${box2d_PREFIX})
 ENDIF(POLYCODE_BUILD_BOX2D)
 
 FIND_PACKAGE(Box2D)
 
+IF(POLYCODE_BUILD_BULLET)
+    
+    INCLUDE(ExternalProject)
+
+    SET(bullet_PREFIX ${PROJECT_BINARY_DIR}/Modules/Dependencies/Bullet)
+        
+    # Needs fpic to link in shared lib on Linux
+    IF(CMAKE_COMPILER_IS_GNUCXX)
+        SET(bullet_CXX_ARGS -DCMAKE_CXX_FLAGS=-fPIC)
+    ENDIF(CMAKE_COMPILER_IS_GNUCXX)
+
+    ExternalProject_Add(bullet
+        PREFIX ${bullet_PREFIX}
+        
+        URL http://bullet.googlecode.com/files/bullet-2.78.zip
+        URL_MD5 99d4070864c9f73521481ba9cda25038
+
+        CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DBUILD_CPU_DEMOS=OFF ${bullet_CXX_ARGS}
+    )
+    
+    # cmake seems to have trouble finding the includes
+    SET(BULLET_INCLUDE_DIR ${bullet_PREFIX}/include/bullet)
+    SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${bullet_PREFIX})
+ENDIF(POLYCODE_BUILD_BULLET)
+
+FIND_PACKAGE(Bullet)
+
 ADD_SUBDIRECTORY(Contents)