Browse Source

CMake: Generate, don't use, pydtool.cxx

Sam Edwards 7 years ago
parent
commit
d2d5e3014c
1 changed files with 23 additions and 2 deletions
  1. 23 2
      dtool/metalibs/dtoolconfig/CMakeLists.txt

+ 23 - 2
dtool/metalibs/dtoolconfig/CMakeLists.txt

@@ -12,8 +12,29 @@ else()
   set(libtype STATIC)
 endif()
 
-if(HAVE_PYTHON)
-  add_library(interrogatedb ${libtype} pydtool.cxx)
+if(HAVE_PYTHON AND INTERROGATE_PYTHON_INTERFACE)
+  set(INTERROGATEDB_IGATE
+    ../../src/interrogatedb/interrogate_interface.h
+    ../../src/interrogatedb/interrogate_request.h
+  )
+
+  add_custom_command(
+    OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/interrogatedb_module.cxx"
+    COMMAND interrogate
+      -D EXPCL_INTERROGATEDB=
+      -nodb -python -promiscuous
+      -module panda3d.interrogatedb
+      -library interrogatedb
+      -string -true-names -do-module
+      -srcdir "${CMAKE_CURRENT_SOURCE_DIR}"
+      -oc "${CMAKE_CURRENT_BINARY_DIR}/interrogatedb_module.cxx"
+      ${INTERROGATEDB_IGATE}
+    DEPENDS interrogate ${INTERROGATEDB_IGATE}
+    COMMENT "Interrogating interrogatedb"
+  )
+
+  add_library(interrogatedb ${libtype}
+    "${CMAKE_CURRENT_BINARY_DIR}/interrogatedb_module.cxx")
   target_use_packages(interrogatedb PYTHON)
   target_link_libraries(interrogatedb p3dtoolconfig)