Browse Source

cmake: config: Finish updating config to use the same variables as used in-source.

kestred 12 years ago
parent
commit
f81b14a70b
1 changed files with 39 additions and 62 deletions
  1. 39 62
      dtool/Config.cmake

+ 39 - 62
dtool/Config.cmake

@@ -533,36 +533,33 @@ set(HAVE_FLEX ${FLEX_FOUND})
 
 ### Configure threading support ###
 find_package(Threads)
+
+# Add basic use flag for threading
 if(THREADS_FOUND)
-  # Add basic use flag for threading
-  option(BUILD_THREADS
+  option(HAVE_THREADS
     "If on, compile Panda3D with threading support.
 Building in support for threading will enable Panda to take
 advantage of multiple CPU's if you have them (and if the OS
 supports kernel threads running on different CPU's), but it will
 slightly slow down Panda for the single CPU case." ON)
-  if(BUILD_THREADS)
-    set(HAVE_THREADS TRUE)
-  else()
-    unset(BUILD_SIMPLE_THREADS CACHE)
-    unset(BUILD_OS_SIMPLE_THREADS CACHE)
-  endif()
 else()
-  unset(BUILD_THREADS CACHE)
+  option(HAVE_THREADS
+    "If on, compile Panda3D with threading support.
+Building in support for threading will enable Panda to take
+advantage of multiple CPU's if you have them (and if the OS
+supports kernel threads running on different CPU's), but it will
+slightly slow down Panda for the single CPU case." OFF)
 endif()
 
+
 # Configure debug threads
-# Add advanced threading configuration
-if(HAVE_THREADS)
-  if(CMAKE_BUILD_TYPE MATCHES "Debug")
-    option(BUILD_DEBUG_THREADS "If on, enables debugging of thread and sync operations (i.e. mutexes, deadlocks)" ON)
-  else()
-    option(BUILD_DEBUG_THREADS "If on, enables debugging of thread and sync operations (i.e. mutexes, deadlocks)" OFF)
-  endif()
-  if(BUILD_DEBUG_THREADS)
-    set(DEBUG_THREADS TRUE)
-  endif()
+if(CMAKE_BUILD_TYPE MATCHES "Debug")
+  option(DEBUG_THREADS "If on, enables debugging of thread and sync operations (i.e. mutexes, deadlocks)" ON)
+else()
+  option(DEBUG_THREADS "If on, enables debugging of thread and sync operations (i.e. mutexes, deadlocks)" OFF)
+endif()
 
+if(HAVE_THREADS)
   set(HAVE_POSIX_THREADS ${CMAKE_USE_PTHREADS_INIT})
   if(HAVE_POSIX_THREADS)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
@@ -571,9 +568,10 @@ if(HAVE_THREADS)
     set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -pthread")
     set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -pthread")
   endif()
+endif()
 
-  option(BUILD_SIMPLE_THREADS
-    "If on, compile with simulated threads.  Threads, by default, use
+option(SIMPLE_THREADS
+  "If on, compile with simulated threads.  Threads, by default, use
 OS-provided threading constructs, which usually allows for full
 multithreading support (i.e. the program can use multiple CPU's).
 On the other hand, compiling in this full OS-provided support can
@@ -581,75 +579,54 @@ impose some substantial runtime overhead, making the application
 run slower on a single-CPU machine. This settings avoid the overhead,
 but still gain some of the basic functionality of threads." OFF)
 
-  if(BUILD_SIMPLE_THREADS)
-    message(STATUS "Compilation will include simulated threading support.")
-    option(BUILD_OS_SIMPLE_THREADS
-      "If on, OS threading constructs will be used to perform context switches.
+
+option(OS_SIMPLE_THREADS
+  "If on, OS threading constructs will be used to perform context switches.
 A mutex is used to ensure that only one thread runs at a time, so the
 normal SIMPLE_THREADS optimizations still apply, and the normal
 SIMPLE_THREADS scheduler is used to switch between threads (instead
 of the OS scheduler).  This may be more portable and more reliable,
 but it is a hybrid between user-space threads and os-provided threads." ON)
 
-    set(SIMPLE_THREADS TRUE)
-    if(BUILD_OS_SIMPLE_THREADS)
-      set(OS_SIMPLE_THREADS TRUE)
-    endif()
-  else()
-    unset(BUILD_OS_SIMPLE_THREADS CACHE)
-
-    option(BUILD_PIPELINING "If on, compile with pipelined rendering." ON)
-    if(BUILD_PIPELINING)
-      message(STATUS "Compilation will include full, pipelined threading support.")
-    else()
-      message(STATUS "Compilation will include nonpipelined threading support.")
-    endif()
-  endif()
-else()
-  message(STATUS "Configuring Panda without threading support.")
-endif()
-
 
 ### Configure pipelining ###
-if(NOT DEFINED BUILD_PIPELINING)
-  option(BUILD_PIPELINING "If on, compile with pipelined rendering." ON)
-endif()
-if(BUILD_PIPELINING)
-  set(DO_PIPELINING TRUE)
-endif()
+option(DO_PIPELINING "If on, compile with pipelined rendering." ON)
 
 
-
-### Configure OS X options ###
+### Report on threading and pipelining status ###
+if(SIMPLE_THREADS)
+  message(STATUS "Compilation will include simulated threading support.")
+elseif(HAVE_THREADS)
+  if(DO_PIPELINING)
+    message(STATUS "Compilation will include full, pipelined threading support.")
+  else()
+    message(STATUS "Compilation will include nonpipelined threading support.")
+  endif()
+else(NOT SIMPLE_THREADS)
+  message(STATUS "Configuring Panda without threading support.")
+endif()
 
 message(STATUS "")
 message(STATUS "See dtool_config.h for more details about the specified configuration.\n")
 
 ### Miscellaneous configuration
 if(CMAKE_BUILD_TYPE MATCHES "MinSizeRel")
-  unset(BUILD_WITH_DEFAULT_FONT CACHE)
-  option(BUILD_WITH_DEFAULT_FONT
+  unset(COMPILE_IN_DEFAULT_FONT CACHE)
+  option(COMPILE_IN_DEFAULT_FONT
     "If on, compiles in a default font, so that every TextNode will always
 have a font available without requiring the user to specify one.
 When turned off, the generated library will save a few kilobytes." OFF)
 else()
-  option(BUILD_WITH_DEFAULT_FONT
+  option(COMPILE_IN_DEFAULT_FONT
     "If on, compiles in a default font, so that every TextNode will always
 have a font available without requiring the user to specify one.
 When turned off, the generated library will save a few kilobytes." ON)
 endif()
-if(BUILD_WITH_DEFAULT_FONT)
-  set(COMPILE_IN_DEFAULT_FONT TRUE)
-endif()
 
-option(BUILD_PREFER_STDFLOAT
+option(STDFLOAT_DOUBLE
   "Define this true to compile a special version of Panda to use a
 'double' floating-precision type for most internal values, such as
 positions and transforms, instead of the standard single-precision
 'float' type.  This does not affect the default numeric type of
 vertices, which is controlled by the runtime config variable
 vertices-float64." OFF)
-if(BUILD_PREFER_STDFLOAT)
-  set(STDFLOAT_DOUBLE TRUE)
-endif()
-