Explorar el Código

Add panda/src/configfiles

rdb hace 11 años
padre
commit
e9f4e44e99

+ 5 - 5
dtool/Config.cmake

@@ -596,17 +596,17 @@ find_package(FFMPEG)
 find_package(SWScale)
 find_package(SWScale)
 find_package(SWResample)
 find_package(SWResample)
 
 
-package_option(FFMPEG DEFAULT ON
+package_option(FFMPEG
   "Enables support for audio- and video-decoding using the FFMPEG library.")
   "Enables support for audio- and video-decoding using the FFMPEG library.")
-package_option(SWSCALE DEFAULT ON
+package_option(SWSCALE
   "Enables support for FFMPEG's libswscale for video rescaling.")
   "Enables support for FFMPEG's libswscale for video rescaling.")
-package_option(SWRESAMPLE DEFAULT ON
+package_option(SWRESAMPLE
   "Enables support for FFMPEG's libresample for audio resampling.")
   "Enables support for FFMPEG's libresample for audio resampling.")
 
 
 # Is ODE installed, and where?
 # Is ODE installed, and where?
 find_package(ODE)
 find_package(ODE)
 
 
-package_option(ODE DEFAULT ON
+package_option(ODE
   "Enables support for ridid-body physics using the Open Dynamics Engine.")
   "Enables support for ridid-body physics using the Open Dynamics Engine.")
 
 
 # Is OpenGL installed, and where?
 # Is OpenGL installed, and where?
@@ -620,7 +620,7 @@ package_option(GL "Enable OpenGL support.")
 # libraries appropriate to the version you want to compile against.
 # libraries appropriate to the version you want to compile against.
 set(MIN_GL_VERSION "1 1" CACHE STRING
 set(MIN_GL_VERSION "1 1" CACHE STRING
   "The variable is the major, minor version of OpenGL, separated by a
   "The variable is the major, minor version of OpenGL, separated by a
-space (instead of a dot).  Thus, "1 1" means OpenGL version 1.1.
+space (instead of a dot).  Thus, \"1 1\" means OpenGL version 1.1.
 
 
 This defines the minimum runtime version of OpenGL that Panda will
 This defines the minimum runtime version of OpenGL that Panda will
 require. Setting it to a higher version will compile in hard
 require. Setting it to a higher version will compile in hard

+ 1 - 3
dtool/src/dtoolbase/CMakeLists.txt

@@ -62,8 +62,6 @@ set(P3DTOOLBASE_SOURCES
 composite_sources(p3dtoolbase P3DTOOLBASE_SOURCES)
 composite_sources(p3dtoolbase P3DTOOLBASE_SOURCES)
 
 
 add_library(p3dtoolbase	${P3DTOOLBASE_HEADERS} ${P3DTOOLBASE_SOURCES})
 add_library(p3dtoolbase	${P3DTOOLBASE_HEADERS} ${P3DTOOLBASE_SOURCES})
-if(HAVE_PYTHON)
-  target_link_libraries(p3dtoolbase ${PYTHON_LIBRARIES})
-endif()
+target_use_packages(p3dtoolbase THREADS PYTHON)
 
 
 install(TARGETS p3dtoolbase DESTINATION lib)
 install(TARGETS p3dtoolbase DESTINATION lib)

+ 1 - 0
panda/CMakeLists.txt

@@ -19,6 +19,7 @@ if(HAVE_FREETYPE)
 endif()
 endif()
 
 
 # Include panda source directories
 # Include panda source directories
+add_subdirectory(src/configfiles)
 add_subdirectory(src/pandabase)
 add_subdirectory(src/pandabase)
 add_subdirectory(src/express)
 add_subdirectory(src/express)
 add_subdirectory(src/downloader)
 add_subdirectory(src/downloader)

+ 31 - 0
panda/src/configfiles/CMakeLists.txt

@@ -0,0 +1,31 @@
+# Set some variables that are used in panda.prc.in.
+set(AUX_DISPLAYS)
+
+if(HAVE_GL)
+  set(AUX_DISPLAYS "${AUX_DISPLAYS}
+aux-display pandagl")
+endif()
+
+if(HAVE_DX9)
+  set(AUX_DISPLAYS "${AUX_DISPLAYS}
+aux-display pandadx9")
+endif()
+
+if(HAVE_TINYDISPLAY)
+  set(AUX_DISPLAYS "${AUX_DISPLAYS}
+aux-display p3tinydisplay")
+endif()
+
+if(HAVE_RAD_MSS)
+  set(AUDIO_LIBRARY_NAME p3miles_audio)
+elseif(HAVE_FMODEX)
+  set(AUDIO_LIBRARY_NAME p3fmod_audio)
+elseif(HAVE_OPENAL)
+  set(AUDIO_LIBRARY_NAME p3openal_audio)
+else()
+  set(AUDIO_LIBRARY_NAME none)
+endif()
+
+configure_file(panda.prc.in "${CMAKE_BINARY_DIR}/etc/20_panda.prc")
+
+install(FILES "${CMAKE_BINARY_DIR}/etc/20_panda.prc" DESTINATION etc)

+ 125 - 0
panda/src/configfiles/panda.prc.in

@@ -0,0 +1,125 @@
+//
+// panda.prc.in
+//
+// This file defines the script to auto-generate panda.prc at
+// CMake time.  This is intended to fill in some of the default
+// parameters, in particular the default display types.
+//
+
+#output 20_panda.prc notouch
+#### Generated automatically by CMake ${CMAKE_VERSION} from panda.prc.in.
+################################# DO NOT EDIT ###########################
+
+plugin-path $THIS_PRC_DIR/../lib
+
+# Let's set up a default window size of 800x600.  The user can
+# override this in his or her personal prc file.
+win-size 800 600
+
+# Define the display types that have been compiled in.  Panda will
+# pick one of these by going through the list in this order until one
+# is found that works, unless the user specifically requests a
+# particular display type with the load-display directive.
+${AUX_DISPLAYS}
+
+# Define an appropriate default audio library.
+audio-library-name ${AUDIO_LIBRARY_NAME}
+
+# The egg loader is handy to have available by default.  This allows
+# clients to load egg files.  (The bam loader is built-in so bam files
+# are always loadable).
+
+# By qualifying with the extension "egg", we indicate the egg loader
+# should be made available only if you explicitly name a file with an
+# .egg extension.
+
+# Also see ptloader, which is built as part of pandatool; it allows
+# files of more exotic types (like .flt, .mb, .lwo, and .dxf) to be
+# loaded directly into Panda.
+
+load-file-type egg pandaegg
+
+
+# These entries work very similar to load-file-type, except they are
+# used by the MovieVideo and MovieAudio code to determine which module
+# should be loaded in order to decode files of the given extension.
+
+# ffmpeg is added by default because it used to be compiled in.
+# The * is a special catch-all extension that is consulted unless a
+# loader has been defined with an explicit extension.
+
+load-audio-type * p3ffmpeg
+load-video-type * p3ffmpeg
+
+
+# The following lines define some handy object types to use within the
+# egg syntax.  This remaps <ObjectType> { name } into whatever egg
+# syntax is given by egg-object-type-name, which makes a handy
+# abbreviation for modeling packages (like Maya) to insert
+# sophisticated egg syntax into the generated egg file, using a single
+# object type string.
+
+egg-object-type-portal          <Scalar> portal { 1 }
+egg-object-type-polylight       <Scalar> polylight { 1 }
+egg-object-type-seq24           <Switch> { 1 } <Scalar> fps { 24 }
+egg-object-type-seq12           <Switch> { 1 } <Scalar> fps { 12 }
+egg-object-type-seq10           <Switch> { 1 } <Scalar> fps { 10 }
+egg-object-type-seq8            <Switch> { 1 } <Scalar> fps { 8 }
+egg-object-type-seq6            <Switch> { 1} <Scalar>  fps { 6 }
+egg-object-type-seq4            <Switch> { 1} <Scalar>  fps { 4 }
+egg-object-type-seq2            <Switch> { 1} <Scalar>  fps { 2 }
+egg-object-type-indexed         <Scalar> indexed { 1 }
+
+egg-object-type-binary          <Scalar> alpha { binary }
+egg-object-type-dual            <Scalar> alpha { dual }
+egg-object-type-glass           <Scalar> alpha { blend_no_occlude }
+
+# These are just shortcuts to define the Model and DCS flags, which
+# indicate nodes that should not be flattened out of the hierarchy
+# during the conversion process.  DCS goes one step further and
+# indicates that the node's transform is important and should be
+# preserved (DCS stands for Dynamic Coordinate System).  Notouch is
+# even stronger, and means not to do any flattening below the node at
+# all.
+egg-object-type-model           <Model> { 1 }
+egg-object-type-dcs             <DCS> { 1 }
+egg-object-type-notouch         <DCS> { no_touch }
+
+# The following define various kinds of collision geometry.  These
+# mark the geometry at this level and below as invisible collision
+# polygons, which can be used by Panda's collision system to detect
+# collisions more optimally than regular visible polygons.
+egg-object-type-barrier         <Collide> { Polyset descend }
+egg-object-type-sphere          <Collide> { Sphere descend }
+egg-object-type-invsphere       <Collide> { InvSphere descend }
+egg-object-type-tube            <Collide> { Tube descend }
+
+# As above, but these are flagged to be "intangible", so that they
+# will trigger an event but not stop an object from passing through.
+egg-object-type-trigger         <Collide> { Polyset descend intangible }
+egg-object-type-trigger-sphere  <Collide> { Sphere descend intangible }
+
+# "floor" and "dupefloor" define the nodes in question as floor
+# polygons.  dupefloor means to duplicate the geometry first so that
+# the same polygons serve both as visible geometry and as collision
+# polygons.
+egg-object-type-floor           <Collide> { Polyset descend level }
+egg-object-type-dupefloor       <Collide> { Polyset keep descend level }
+
+# "bubble" puts an invisible bubble around an object, but does not
+# otherwise remove the geometry.
+egg-object-type-bubble          <Collide> { Sphere keep descend }
+
+# "ghost" turns off the normal collide bit that is set on visible
+# geometry by default, so that if you are using visible geometry for
+# collisions, this particular geometry will not be part of those
+# collisions--it is ghostlike.
+egg-object-type-ghost           <Scalar> collide-mask { 0 }
+
+# "glow" is useful for halo effects and things of that ilk.  It
+# renders the object in add mode instead of the normal opaque mode.
+egg-object-type-glow            <Scalar> blend { add }
+
+# This isn't used in the egg loader, it controls a setting only within
+# maya2egg itself.  So if it appears in an egg file, it means nothing.
+egg-object-type-keep-all-uvsets