Browse Source

CMake: Work on direct; get dcparse, dcparser, deadrec, directbase, distributed to build+Interrogate.

Sam Edwards 12 years ago
parent
commit
89797d78d6

+ 7 - 5
direct/CMakeLists.txt

@@ -1,14 +1,16 @@
 # Include source directories which have C++ components:
+add_subdirectory(src/directbase)
 add_subdirectory(src/autorestart)
-#add_subdirectory(src/dcparser)
-#add_subdirectory(src/dcparse)
-#add_subdirectory(src/deadrec)
-#add_subdirectory(src/directbase)
+add_subdirectory(src/dcparser)
+add_subdirectory(src/dcparse)
+add_subdirectory(src/deadrec)
 #add_subdirectory(src/directdServer)
 #add_subdirectory(src/directd)
-#add_subdirectory(src/distributed)
+add_subdirectory(src/distributed)
 #add_subdirectory(src/heapq)
 #add_subdirectory(src/http)
 #add_subdirectory(src/interval)
 #add_subdirectory(src/motiontrail)
 #add_subdirectory(src/showbase)
+
+add_python_module(direct p3dcparser p3deadrec p3distributed)

+ 3 - 0
direct/src/dcparse/CMakeLists.txt

@@ -0,0 +1,3 @@
+add_executable(dcparse dcparse.cxx)
+set_target_properties(dcparse PROPERTIES COMPILE_DEFINITIONS WITHIN_PANDA)
+target_link_libraries(dcparse p3dcparser)

+ 53 - 0
direct/src/dcparser/CMakeLists.txt

@@ -0,0 +1,53 @@
+add_bison_target(dcParser.cxx dcParser.yxx DEFINES dcParser.h PREFIX dcyy)
+add_flex_target(dcLexer.cxx dcLexer.lxx CASE_INSENSITIVE PREFIX dcyy)
+
+set(P3DCPARSER_HEADERS
+     dcAtomicField.h dcAtomicField.I dcClass.h dcClass.I
+     dcDeclaration.h
+     dcField.h dcField.I
+     dcFile.h dcFile.I
+     dcKeyword.h dcKeywordList.h
+     dcLexer.lxx
+     dcLexerDefs.h dcMolecularField.h dcParser.yxx dcParserDefs.h
+     dcSubatomicType.h
+     dcPackData.h dcPackData.I
+     dcPacker.h dcPacker.I
+     dcPackerCatalog.h dcPackerCatalog.I
+     dcPackerInterface.h dcPackerInterface.I
+     dcParameter.h dcClassParameter.h dcArrayParameter.h
+     dcSimpleParameter.h dcSwitchParameter.h
+     dcNumericRange.h dcNumericRange.I
+     dcSwitch.h
+     dcTypedef.h
+     dcPython.h
+     dcbase.h dcindent.h hashGenerator.h
+     primeNumberGenerator.h)
+
+set(P3DCPARSER_SOURCES
+     dcAtomicField.cxx dcClass.cxx
+     dcDeclaration.cxx
+     dcField.cxx dcFile.cxx
+     dcKeyword.cxx dcKeywordList.cxx
+     dcMolecularField.cxx dcSubatomicType.cxx
+     dcPackData.cxx
+     dcPacker.cxx
+     dcPackerCatalog.cxx
+     dcPackerInterface.cxx
+     dcParameter.cxx dcClassParameter.cxx dcArrayParameter.cxx
+     dcSimpleParameter.cxx dcSwitchParameter.cxx
+     dcSwitch.cxx
+     dcTypedef.cxx
+     dcindent.cxx
+     hashGenerator.cxx primeNumberGenerator.cxx)
+
+# These cannot be interrogated, and are excluded from the composites.
+set(P3DCPARSER_PARSER_SOURCES
+    dcParser.cxx
+    dcLexer.cxx)
+
+composite_sources(p3dcparser P3DCPARSER_SOURCES)
+add_library(p3dcparser ${P3DCPARSER_SOURCES} ${P3DCPARSER_HEADERS}
+  ${P3DCPARSER_PARSER_SOURCES})
+set_target_properties(p3dcparser PROPERTIES COMPILE_DEFINITIONS WITHIN_PANDA)
+target_link_libraries(p3dcparser p3directbase p3express p3pstatclient p3prc)
+target_interrogate(p3dcparser ${P3DCPARSER_SOURCES} ${P3DCPARSER_HEADERS})

+ 11 - 0
direct/src/deadrec/CMakeLists.txt

@@ -0,0 +1,11 @@
+set(P3DEADREC_HEADERS
+    config_deadrec.h
+    smoothMover.h smoothMover.I)
+
+set(P3DEADREC_SOURCES
+    config_deadrec.cxx
+    smoothMover.cxx)
+
+add_library(p3deadrec ${P3DEADREC_HEADERS} ${P3DEADREC_SOURCES})
+target_link_libraries(p3deadrec p3directbase p3linmath p3pgraph p3prc)
+target_interrogate(p3deadrec ALL)

+ 11 - 0
direct/src/directbase/CMakeLists.txt

@@ -0,0 +1,11 @@
+set(P3DIRECTBASE_SOURCES
+  directbase.cxx
+)
+
+set(P3DIRECTBASE_HEADERS
+  directbase.h directsymbols.h
+)
+
+# Not worth compositing sources, there's really only one.
+add_library(p3directbase ${P3DIRECTBASE_SOURCES} ${P3DIRECTBASE_HEADERS})
+target_link_libraries(p3directbase p3pandabase)

+ 24 - 0
direct/src/distributed/CMakeLists.txt

@@ -0,0 +1,24 @@
+if(HAVE_PYTHON)
+  set(P3DISTRIBUTED_HEADERS
+      config_distributed.h
+      cConnectionRepository.I
+      cConnectionRepository.h
+      cDistributedSmoothNodeBase.I
+      cDistributedSmoothNodeBase.h)
+
+  set(P3DISTRIBUTED_SOURCES
+      config_distributed.cxx
+      cConnectionRepository.cxx
+      cDistributedSmoothNodeBase.cxx)
+
+  add_library(p3distributed ${P3DISTRIBUTED_HEADERS} ${P3DISTRIBUTED_SOURCES})
+  set_target_properties(p3distributed PROPERTIES COMPILE_DEFINITIONS WITHIN_PANDA)
+  target_link_libraries(p3distributed p3directbase p3dcparser p3pgraph)
+  if(WANT_NATIVE_NET)
+    target_link_libraries(p3distributed p3nativenet)
+  endif()
+  if(HAVE_NET)
+    target_link_libraries(p3distributed p3net)
+  endif()
+  target_interrogate(p3distributed ALL)
+endif()