Просмотр исходного кода

Linux CMake fixes. Should compile out of the box now.

Ivan Safrin 14 лет назад
Родитель
Сommit
f49d134973

+ 1 - 0
CMake/ExternalOpenAL.cmake

@@ -5,6 +5,7 @@ SET(openal_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/openal)
 
 SET(openal_CMAKE_ARGS
     -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> 
+    -DLIBTYPE=STATIC
     -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
     -DCMAKE_DEBUG_POSTFIX=d
 )

+ 24 - 17
CMake/FindAssimp.cmake

@@ -8,36 +8,43 @@
 #  ASSIMP_LIBRARY - Link these to use Assimp
 #  ASSIMP_LIBRARIES
 
+SET(ASSIMP_SEARCH_PATHS
+	${POLYCODE_RELEASE_DIR}/Framework/Tools/Dependencies/lib
+	${POLYCODE_RELEASE_DIR}/Framework/Tools/Dependencies/include/assimp
+	${POLYCODE_RELEASE_DIR}/Framework/Tools/Dependencies/include/
+)
+
 
 find_path (ASSIMP_INCLUDE_DIR NAMES assimp.h
-  PATH_SUFFIXES include/assimp include
-  PATHS ENV{CPATH} $ENV{ASSIMP_DIR} $ENV{ASSIMP_DIR}/include $ENV{INCLUDE} $ENV{INCLUDE}
-  /usr/include /usr/local/include /opt/local/include ENV INCLUDE/assimp
-  ${ASSIMP_ROOT}/include 
+	HINTS
+	NO_DEFAULT_PATH
+	NO_CMAKE_ENVIRONMENT_PATH
+	NO_CMAKE_SYSTEM_PATH
+	NO_SYSTEM_ENVIRONMENT_PATH
+	NO_CMAKE_PATH
+	CMAKE_FIND_FRAMEWORK NEVER
+	PATH_SUFFIXES lib lib64 win32/Dynamic_Release "Win32/${MSVC_YEAR_NAME}/x64/Release" "Win32/${MSVC_YEAR_NAME}/Win32/Release"
+	PATHS ${ASSIMP_SEARCH_PATHS}
 )
  
-set (LIB_PATHS $ENV{LD_LIBRARY_PATH} $ENV{LIBRARY_PATH} $ENV{LIB}
-  /usr/lib /usr/local/lib /opt/local/lib
-  ${ASSIMP_INCLUDE_DIR}/../lib)
+find_library (ASSIMP_LIBRARY_DEBUG NAMES assimpd libassimpd libassimp_d PATHS ${ASSIMP_SEARCH_PATHS})
+find_library (ASSIMP_LIBRARY_RELEASE NAMES assimp libassimp PATHS ${ASSIMP_SEARCH_PATHS})
 
-find_library (ASSIMP_LIBRARY_DEBUG NAMES assimpd PATHS ${LIB_PATHS})
-find_library (ASSIMP_LIBRARY_RELEASE NAMES assimp PATHS ${LIB_PATHS})
-
-if (ASSIMP_INCLUDE_DIR AND ASSIMP_LIBRARY_DEBUG AND ASSIMP_LIBRARY_RELEASE)
+if (ASSIMP_INCLUDE_DIR AND ASSIMP_LIBRARY_RELEASE)
   set(ASSIMP_FOUND TRUE)
 endif()
 
+if (ASSIMP_LIBRARY_RELEASE)
+    set (ASSIMP_LIBRARY ${ASSIMP_LIBRARY_RELEASE})
+endif()
+
 if (ASSIMP_LIBRARY_DEBUG AND ASSIMP_LIBRARY_RELEASE)
-  if (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
     set (ASSIMP_LIBRARY debug ${ASSIMP_LIBRARY_DEBUG} optimized ${ASSIMP_LIBRARY_RELEASE} )
-  else()
-    set (ASSIMP_LIBRARY ${ASSIMP_LIBRARY_RELEASE})
-  endif()
-    # FIXME: This probably should be set for both cases
-    set (ASSIMP_LIBRARIES debug ${ASSIMP_LIBRARY_DEBUG} optimized ${ASSIMP_LIBRARY_RELEASE})
 endif()
 
+
 if (ASSIMP_FOUND)
+  MESSAGE("-- Found Assimp ${ASSIMP_LIBRARIES}")
   mark_as_advanced (ASSIMP_INCLUDE_DIR ASSIMP_LIBRARY ASSIMP_LIBRARIES)
 endif()
 

+ 147 - 0
CMake/FindBullet.cmake

@@ -0,0 +1,147 @@
+
+SET(BULLET_SEARCH_PATHS
+	${POLYCODE_RELEASE_DIR}/Framework/Core/Dependencies/lib
+	${POLYCODE_RELEASE_DIR}/Framework/Modules/Dependencies/lib
+	${POLYCODE_RELEASE_DIR}/Framework/Modules/Dependencies/include/bullet
+	${POLYCODE_RELEASE_DIR}/Framework/Tools/Dependencies/lib
+)
+
+# - Try to find Bullet
+# Once done this will define
+#
+#  BULLET_FOUND - system has bullet
+#  BULLET_INCLUDE_DIR - the bullet include directory
+#  BULLET_LIBRARIES - Link these to use Collada DOM
+#
+
+  SET(BULLETDYNAMICS "BulletDynamics")
+  SET(BULLETCOLLISION "BulletCollision")
+  SET(BULLETMATH "LinearMath")
+  SET(BULLETSOFTBODY "BulletSoftBody")
+  SET(BULLETMULTITHREADED "BulletMultiThreaded")
+
+FIND_PATH(BULLET_INCLUDE_DIR NAMES btBulletCollisionCommon.h
+	HINTS
+	NO_DEFAULT_PATH
+	NO_CMAKE_ENVIRONMENT_PATH
+	NO_CMAKE_SYSTEM_PATH
+	NO_SYSTEM_ENVIRONMENT_PATH
+	NO_CMAKE_PATH
+	CMAKE_FIND_FRAMEWORK NEVER
+	PATHS ${BULLET_SEARCH_PATHS}
+)
+
+FIND_LIBRARY(LIBBULLETDYNAMICS
+  NAMES 
+  ${BULLETDYNAMICS}
+	HINTS
+	NO_DEFAULT_PATH
+	NO_CMAKE_ENVIRONMENT_PATH
+	NO_CMAKE_SYSTEM_PATH
+	NO_SYSTEM_ENVIRONMENT_PATH
+	NO_CMAKE_PATH
+	CMAKE_FIND_FRAMEWORK NEVER
+	$ENV{BULLETDIR}
+	$ENV{BULLET_PATH}
+	PATH_SUFFIXES lib lib64 win32/Dynamic_Release "Win32/${MSVC_YEAR_NAME}/x64/Release" "Win32/${MSVC_YEAR_NAME}/Win32/Release"
+	PATHS ${BULLET_SEARCH_PATHS}
+)
+
+IF(NOT LIBBULLETDYNAMICS)
+    MESSAGE ("WARNING: Could not find Bullet Dynamics - depending targets will be disabled.")
+ENDIF(NOT LIBBULLETDYNAMICS)
+
+
+FIND_LIBRARY(LIBBULLETCOLLISION
+  NAMES 
+  ${BULLETCOLLISION}
+	HINTS
+	NO_DEFAULT_PATH
+	NO_CMAKE_ENVIRONMENT_PATH
+	NO_CMAKE_SYSTEM_PATH
+	NO_SYSTEM_ENVIRONMENT_PATH
+	NO_CMAKE_PATH
+	CMAKE_FIND_FRAMEWORK NEVER
+	$ENV{BULLETDIR}
+	$ENV{BULLET_PATH}
+	PATH_SUFFIXES lib lib64 win32/Dynamic_Release "Win32/${MSVC_YEAR_NAME}/x64/Release" "Win32/${MSVC_YEAR_NAME}/Win32/Release"
+	PATHS ${BULLET_SEARCH_PATHS}
+)
+
+IF(NOT LIBBULLETCOLLISION)
+    MESSAGE ("WARNING: Could not find Bullet Collision - depending targets will be disabled.")
+ENDIF(NOT LIBBULLETCOLLISION)
+
+FIND_LIBRARY(LIBBULLETMATH
+  NAMES 
+  ${BULLETMATH}
+	HINTS
+	NO_DEFAULT_PATH
+	NO_CMAKE_ENVIRONMENT_PATH
+	NO_CMAKE_SYSTEM_PATH
+	NO_SYSTEM_ENVIRONMENT_PATH
+	NO_CMAKE_PATH
+	CMAKE_FIND_FRAMEWORK NEVER
+	$ENV{BULLETDIR}
+	$ENV{BULLET_PATH}
+	PATH_SUFFIXES lib lib64 win32/Dynamic_Release "Win32/${MSVC_YEAR_NAME}/x64/Release" "Win32/${MSVC_YEAR_NAME}/Win32/Release"
+	PATHS ${BULLET_SEARCH_PATHS}
+)
+
+IF(NOT LIBBULLETMATH)
+    MESSAGE ("WARNING: Could not find Bullet Math - depending targets will be disabled.")
+ENDIF(NOT LIBBULLETMATH)
+
+FIND_LIBRARY(LIBBULLETSOFTBODY
+  NAMES 
+  ${BULLETSOFTBODY}
+	HINTS
+	NO_DEFAULT_PATH
+	NO_CMAKE_ENVIRONMENT_PATH
+	NO_CMAKE_SYSTEM_PATH
+	NO_SYSTEM_ENVIRONMENT_PATH
+	NO_CMAKE_PATH
+	CMAKE_FIND_FRAMEWORK NEVER
+	$ENV{BULLETDIR}
+	$ENV{BULLET_PATH}
+	PATH_SUFFIXES lib lib64 win32/Dynamic_Release "Win32/${MSVC_YEAR_NAME}/x64/Release" "Win32/${MSVC_YEAR_NAME}/Win32/Release"
+	PATHS ${BULLET_SEARCH_PATHS}
+)
+
+IF(NOT LIBBULLETSOFTBODY)
+    MESSAGE ("WARNING: Could not find Bullet SoftBody - depending targets will be disabled.")
+ENDIF(NOT LIBBULLETSOFTBODY)
+
+
+FIND_LIBRARY(LIBBULLETMULTITHREADED
+  NAMES 
+  ${BULLETMULTITHREADED}
+	HINTS
+	NO_DEFAULT_PATH
+	NO_CMAKE_ENVIRONMENT_PATH
+	NO_CMAKE_SYSTEM_PATH
+	NO_SYSTEM_ENVIRONMENT_PATH
+	NO_CMAKE_PATH
+	CMAKE_FIND_FRAMEWORK NEVER
+	$ENV{BULLETDIR}
+	$ENV{BULLET_PATH}
+	PATH_SUFFIXES lib lib64 win32/Dynamic_Release "Win32/${MSVC_YEAR_NAME}/x64/Release" "Win32/${MSVC_YEAR_NAME}/Win32/Release"
+	PATHS ${BULLET_SEARCH_PATHS}
+)
+
+IF(NOT LIBBULLETMULTITHREADED)
+    MESSAGE ("WARNING: Could not find Bullet MultiThreaded - depending targets will be disabled.")
+ENDIF(NOT LIBBULLETMULTITHREADED)
+
+SET(BULLET_LIBRARIES ${LIBBULLETMULTITHREADED} ${LIBBULLETSOFTBODY} ${LIBBULLETDYNAMICS} ${LIBBULLETCOLLISION} ${LIBBULLETMATH})
+
+IF(BULLET_INCLUDE_DIR AND BULLET_LIBRARIES)
+  SET(BULLET_FOUND TRUE)
+ENDIF(BULLET_INCLUDE_DIR AND BULLET_LIBRARIES)
+
+# show the BULLET_INCLUDE_DIR and BULLET_LIBRARIES variables only in the advanced view
+IF(BULLET_FOUND)
+  MESSAGE ("Bullet found (${BULLET_INCLUDE_DIR}) (${BULLET_LIBRARIES})")
+  MARK_AS_ADVANCED(BULLET_INCLUDE_DIR BULLET_LIBRARIES )
+ENDIF(BULLET_FOUND)
+

+ 2 - 2
CMakeLists.txt

@@ -19,11 +19,11 @@ ENDIF(NOT CMAKE_BUILD_TYPE)
 # Options for what components to build
 #OPTION(POLYCODE_BUILD_SHARED "Build Polycode shared libraries" OFF)
 #OPTION(POLYCODE_BUILD_STATIC "Build Polycode static libraries" ON)
-OPTION(POLYCODE_BUILD_BINDINGS "Build Polycode Lua bindings" ON)
+OPTION(POLYCODE_BUILD_BINDINGS "Build Polycode Lua bindings" OFF)
 OPTION(POLYCODE_BUILD_MODULES "Build Polycode modules" ON)
 OPTION(POLYCODE_BUILD_PLAYER "Build Polycode standalone player" OFF)
 OPTION(POLYCODE_BUILD_TOOLS "Build Polycode tools" ON)
-OPTION(POLYCODE_BUILD_DOCS "Build Polycode documentation" ON)
+OPTION(POLYCODE_BUILD_DOCS "Build Polycode documentation" OFF)
 
 OPTION(POLYCODE_INSTALL_FRAMEWORK "Install Polycode Core, Modules and Tools" ON)
 OPTION(POLYCODE_INSTALL_PLAYER "Install Polycode Player" ${POLYCODE_BUILD_PLAYER})

+ 14 - 10
Dependencies/CMakeLists.txt

@@ -30,11 +30,11 @@ SET(POLYCODE_DEPS_TOOLS_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/Tools/Dependenc
 SET(CMAKE_MODULE_PATH ${PolycodeDependencies_SOURCE_DIR}/../CMake)
 
 # Download and build all dependencies on Windows and Mac, for Linux recommend using prebuilt packages
-IF(APPLE OR WIN32)
+#IF(APPLE OR WIN32)
     SET(common_deps ON)
-ELSE()
-    SET(common_deps OFF)
-ENDIF()
+#ELSE()
+#    SET(common_deps OFF)
+#ENDIF()
 
 # Options for what components should be downloaded and built
 
@@ -62,42 +62,46 @@ ENDIF(MSVC)
 #IF(PHYSFS_FOUND)
 #    SET(internal_PHYSFS OFF)
 #ELSE(PHYSFS_FOUND)
-    SET(internal_PHYSFS ${common_deps})
+    SET(internal_PHYSFS ON)
 #ENDIF(PHYSFS_FOUND)
 
+IF(APPLE)
 FIND_PACKAGE(OpenAL)
 IF(OPENAL_FOUND)
     SET(internal_OPENAL OFF)
 ELSE(OPENAL_FOUND)
-    SET(internal_OPENAL ${common_deps})
+    SET(internal_OPENAL ON)
 ENDIF(OPENAL_FOUND)
+ELSE()
+    SET(internal_OPENAL ON)
+ENDIF(APPLE)
 
 #FIND_PACKAGE(Freetype)
 #IF(FREETYPE_FOUND)
 #    SET(internal_FREETYPE OFF)
 #ELSE(FREETYPE_FOUND)
-    SET(internal_FREETYPE ${common_deps})
+    SET(internal_FREETYPE ON)
 #ENDIF(FREETYPE_FOUND)
 
 #FIND_PACKAGE(PNG)
 #IF(PNG_FOUND)
 #    SET(internal_PNG OFF)
 #ELSE(PNG_FOUND)
-    SET(internal_PNG ${common_deps})
+    SET(internal_PNG ON)
 #ENDIF(PNG_FOUND)
 
 #FIND_PACKAGE(VorbisFile)
 #IF(VORBISFILE_FOUND)
 #    SET(internal_VORBISFILE OFF)
 #ELSE(VORBISFILE_FOUND)
-    SET(internal_VORBISFILE ${common_deps})
+    SET(internal_VORBISFILE ON)
 #ENDIF(VORBISFILE_FOUND)
 
 #FIND_PACKAGE(Lua51)
 #IF(LUA51_FOUND)
 #    SET(internal_LUA OFF)
 #ELSE(LUA51_FOUND)
-    SET(internal_LUA ${common_deps})
+    SET(internal_LUA ON)
 #ENDIF(LUA51_FOUND)
 
 #FIND_PACKAGE(Box2D)

+ 14 - 0
Examples/C++/Build/Linux/Makefile

@@ -0,0 +1,14 @@
+CC=g++
+CFLAGS=-I../../Core/Dependencies/include -I../../Core/Dependencies/include/AL -I../../Core/include
+LDFLAGS=../../Core/lib/libPolycore.a ../../Core/Dependencies/lib/libfreetype.a ../../Core/Dependencies/lib/liblibogg.a ../../Core/Dependencies/lib/liblibvorbis.a ../../Core/Dependencies/lib/liblibvorbisfile.a ../../Core/Dependencies/lib/libopenal.a ../../Core/Dependencies/lib/libphysfs.a ../../Core/Dependencies/lib/libpng15.a ../../Core/Dependencies/lib/libz.a -lGL -lGLU -lSDL
+
+default: BasicText BasicImage
+
+clean:
+	rm BasicText
+	rm BasicImage
+
+BasicText:
+	${CC} $(CFLAGS) -I./Contents/BasicText main.cpp Contents/BasicText/HelloPolycodeApp.cpp -o BasicText $(LDFLAGS)
+BasicImage:
+	${CC} $(CFLAGS) -I./Contents/BasicImage main.cpp Contents/BasicImage/HelloPolycodeApp.cpp -o BasicImage $(LDFLAGS)

+ 10 - 0
Examples/C++/Build/Linux/main.cpp

@@ -0,0 +1,10 @@
+#include "Polycode.h"
+#include "PolycodeView.h"
+#include "HelloPolycodeApp.h"
+
+int main(int argc, char *argv[]) {
+	PolycodeView *view = new PolycodeView("Hello Polycode!");
+	HelloPolycodeApp *app = new HelloPolycodeApp(view);
+	while(app->Update()) {}
+	return 0;
+}

+ 1 - 1
Modules/Contents/3DPhysics/CMakeLists.txt

@@ -16,7 +16,7 @@ SET(polycode3DPhysics_HDRS
 )
 
 INCLUDE_DIRECTORIES(
-    ${BULLET_INCLUDE_DIRS}
+    ${BULLET_INCLUDE_DIR}
     Include
 )
 

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

@@ -20,7 +20,11 @@ SET(minizip_SRCS
 
 #IF(POLYCODE_BUILD_STATIC)
 ADD_EXECUTABLE(polybuild ${minizip_SRCS} Source/polybuild.cpp Include/polybuild.h)
-TARGET_LINK_LIBRARIES(polybuild Polycore ${PHYSFS_LIBRARY} ${ZLIB_LIBRARIES} "-framework IOKit" "-framework Cocoa")
+IF(APPLE)
+	TARGET_LINK_LIBRARIES(polybuild Polycore ${PHYSFS_LIBRARY} ${ZLIB_LIBRARIES} "-framework IOKit" "-framework Cocoa")
+ELSE()
+	TARGET_LINK_LIBRARIES(polybuild Polycore ${PHYSFS_LIBRARY} ${ZLIB_LIBRARIES})
+ENDIF(APPLE)
 #ENDIF(POLYCODE_BUILD_STATIC)
 
 IF(POLYCODE_INSTALL_FRAMEWORK)

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

@@ -14,7 +14,11 @@ SET(CMAKE_DEBUG_POSTFIX "_d")
 
 #IF(POLYCODE_BUILD_STATIC)
 ADD_EXECUTABLE(polyimport Source/polyimport.cpp Include/polyimport.h)
-TARGET_LINK_LIBRARIES(polyimport Polycore ${PHYSFS_LIBRARY}  ${ZLIB_LIBRARIES} ${ASSIMP_LIBRARIES} "-framework IOKit" "-framework Cocoa")
+IF(APPLE)
+	TARGET_LINK_LIBRARIES(polyimport Polycore ${PHYSFS_LIBRARY}  ${ZLIB_LIBRARIES} ${ASSIMP_LIBRARY} "-framework IOKit" "-framework Cocoa")
+ELSE()
+	TARGET_LINK_LIBRARIES(polyimport Polycore ${PHYSFS_LIBRARY}  ${ZLIB_LIBRARIES} ${ASSIMP_LIBRARY})
+ENDIF(APPLE)
 #ENDIF(POLYCODE_BUILD_STATIC)
 
 IF(POLYCODE_INSTALL_FRAMEWORK)

+ 4 - 4
Tools/Dependencies/unzip11/ioapi.h

@@ -40,14 +40,14 @@
         #endif
 #endif
 
-#define fopen64 fopen
-#define ftello64 ftello
-#define fseeko64 fseeko
-
 #include <stdio.h>
 #include <stdlib.h>
 #include "zlib.h"
 
+#define fopen64 fopen
+#define ftello64 ftello
+#define fseeko64 fseeko
+
 #if defined(USE_FILE32API)
 #define fopen64 fopen
 #define ftello64 ftell