CMake: Update for upstream Interrogate changes

- "igateruntime" is no longer a thing
- interrogate_module embeds a preamble; we have to provide it
- WindowProperties now has an extension
This commit is contained in:
Sam Edwards 2018-11-12 17:23:30 -07:00
parent 1ae736f881
commit 7f8d7366dc
5 changed files with 52 additions and 40 deletions

View File

@ -310,7 +310,7 @@ function(add_python_module module)
) )
add_python_target(panda3d.${module} "${module}_module.cxx" ${sources} ${extensions}) add_python_target(panda3d.${module} "${module}_module.cxx" ${sources} ${extensions})
target_link_libraries(panda3d.${module} ${link_targets} p3igateruntime) target_link_libraries(panda3d.${module} ${link_targets})
if(CMAKE_VERSION VERSION_LESS "3.11") if(CMAKE_VERSION VERSION_LESS "3.11")
# CMake <3.11 doesn't allow generator expressions on source files, so we # CMake <3.11 doesn't allow generator expressions on source files, so we

View File

@ -22,7 +22,8 @@ set(INTERROGATE_HEADERS
parameterRemapToString.h parameterRemapToString.h
parameterRemapHandleToInt.h parameterRemapHandleToInt.h
parameterRemapUnchanged.h parameterRemapUnchanged.h
typeManager.h) typeManager.h
)
set(INTERROGATE_SOURCES set(INTERROGATE_SOURCES
functionRemap.cxx functionRemap.cxx
@ -47,7 +48,15 @@ set(INTERROGATE_SOURCES
parameterRemapToString.cxx parameterRemapToString.cxx
parameterRemapHandleToInt.cxx parameterRemapHandleToInt.cxx
parameterRemapUnchanged.cxx parameterRemapUnchanged.cxx
typeManager.cxx) typeManager.cxx
)
set(INTERROGATE_PREAMBLE_PYTHON_NATIVE
../interrogatedb/py_panda.cxx
../interrogatedb/py_compat.cxx
../interrogatedb/py_wrappers.cxx
../interrogatedb/dtool_super_base.cxx
)
composite_sources(interrogate INTERROGATE_SOURCES) composite_sources(interrogate INTERROGATE_SOURCES)
@ -55,7 +64,24 @@ add_executable(interrogate ${INTERROGATE_HEADERS} ${INTERROGATE_SOURCES})
target_link_libraries(interrogate p3cppParser p3dtoolconfig p3pystub target_link_libraries(interrogate p3cppParser p3dtoolconfig p3pystub
PKG::OPENSSL) PKG::OPENSSL)
add_executable(interrogate_module interrogate_module.cxx) # Python preamble for interrogate_module
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/interrogate_preamble_python_native.cxx
"extern const char interrogate_preamble_python_native[];\n")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/interrogate_preamble_python_native.cxx
"const char interrogate_preamble_python_native[] = (\n")
foreach(preamble_file ${INTERROGATE_PREAMBLE_PYTHON_NATIVE})
file(READ ${preamble_file} preamble_content)
string(REPLACE "\\" "\\\\" preamble_content "${preamble_content}")
string(REPLACE "\"" "\\\"" preamble_content "${preamble_content}")
string(REPLACE "\n" "\\n" preamble_content "${preamble_content}")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/interrogate_preamble_python_native.cxx
" \"${preamble_content}\"\n")
endforeach(preamble_file)
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/interrogate_preamble_python_native.cxx
");\n")
add_executable(interrogate_module interrogate_module.cxx
${CMAKE_CURRENT_BINARY_DIR}/interrogate_preamble_python_native.cxx)
target_link_libraries(interrogate_module p3cppParser p3dtoolconfig p3pystub target_link_libraries(interrogate_module p3cppParser p3dtoolconfig p3pystub
PKG::OPENSSL) PKG::OPENSSL)

View File

@ -9,10 +9,8 @@ set(P3INTERROGATEDB_HEADERS
interrogateManifest.I interrogateManifest.h interrogateManifest.I interrogateManifest.h
interrogateType.I interrogateType.h interrogateType.I interrogateType.h
interrogate_datafile.I interrogate_datafile.h interrogate_datafile.I interrogate_datafile.h
interrogate_interface.h interrogate_request.h) interrogate_interface.h interrogate_request.h
)
set(P3IGATERUNTIME_HEADERS
extension.h py_compat.h py_panda.h py_wrappers.h)
set(P3INTERROGATEDB_SOURCES set(P3INTERROGATEDB_SOURCES
config_interrogatedb.cxx config_interrogatedb.cxx
@ -23,17 +21,17 @@ set(P3INTERROGATEDB_SOURCES
interrogateMakeSeq.cxx interrogateMakeSeq.cxx
interrogateManifest.cxx interrogateManifest.cxx
interrogateType.cxx interrogate_datafile.cxx interrogateType.cxx interrogate_datafile.cxx
interrogate_interface.cxx interrogate_request.cxx) interrogate_interface.cxx interrogate_request.cxx
)
set(P3IGATERUNTIME_SOURCES
dtool_super_base.cxx
py_compat.cxx
${CMAKE_CURRENT_BINARY_DIR}/py_panda.cxx
py_wrappers.cxx)
set(P3INTERROGATEDB_IGATE set(P3INTERROGATEDB_IGATE
interrogate_interface.h interrogate_interface.h
interrogate_request.h) interrogate_request.h
)
set(P3IGATERUNTIME_HEADERS
extension.h py_compat.h py_panda.h py_wrappers.h
)
composite_sources(p3interrogatedb P3INTERROGATEDB_SOURCES) composite_sources(p3interrogatedb P3INTERROGATEDB_SOURCES)
@ -45,25 +43,6 @@ if(NOT BUILD_METALIBS)
install(TARGETS p3interrogatedb DESTINATION lib RUNTIME DESTINATION bin) install(TARGETS p3interrogatedb DESTINATION lib RUNTIME DESTINATION bin)
endif() endif()
install(FILES ${P3INTERROGATEDB_HEADERS} DESTINATION include/panda3d) install(FILES ${P3INTERROGATEDB_HEADERS} DESTINATION include/panda3d)
# Now we need to build the Interrogate runtime code; this should eventually be
# split out into its own subdirectory.
# HACK: igateruntime doesn't have its own BUILDING_IGATERUNTIME symbol yet;
# it's still using BUILDING_INTERROGATEDB.
# py_panda.cxx can't rely on anything from interrogatedb, so:
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/py_panda.cxx _py_panda)
string(REGEX REPLACE "interrogatedb" "prc" _py_panda "${_py_panda}")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/py_panda.cxx "${_py_panda}")
add_library(p3igateruntime
${P3IGATERUNTIME_HEADERS} ${P3IGATERUNTIME_SOURCES})
set_target_properties(p3igateruntime PROPERTIES
DEFINE_SYMBOL BUILDING_INTERROGATEDB) # HACK
target_link_libraries(p3igateruntime p3dtoolconfig PKG::PYTHON)
install(TARGETS p3igateruntime DESTINATION lib RUNTIME DESTINATION bin)
install(FILES ${P3IGATERUNTIME_HEADERS} DESTINATION include/panda3d) install(FILES ${P3IGATERUNTIME_HEADERS} DESTINATION include/panda3d)
# ALSO: This has an Interrogate binding! Take care of that if we want it. # ALSO: This has an Interrogate binding! Take care of that if we want it.
@ -91,4 +70,4 @@ add_custom_command(
add_python_target(panda3d.interrogatedb add_python_target(panda3d.interrogatedb
"${CMAKE_CURRENT_BINARY_DIR}/interrogatedb_module.cxx") "${CMAKE_CURRENT_BINARY_DIR}/interrogatedb_module.cxx")
target_link_libraries(panda3d.interrogatedb p3igateruntime) target_link_libraries(panda3d.interrogatedb p3dtoolconfig)

View File

@ -71,6 +71,8 @@ set(P3DISPLAY_IGATEEXT
graphicsWindow_ext.h graphicsWindow_ext.h
pythonGraphicsWindowProc.cxx pythonGraphicsWindowProc.cxx
pythonGraphicsWindowProc.h pythonGraphicsWindowProc.h
windowProperties_ext.cxx
windowProperties_ext.h
) )
if(APPLE) if(APPLE)

View File

@ -39,7 +39,8 @@ set(P3ODE_HEADERS
odeTriMeshData.I odeTriMeshData.h odeTriMeshData.I odeTriMeshData.h
odeTriMeshGeom.I odeTriMeshGeom.h odeTriMeshGeom.I odeTriMeshGeom.h
odeCollisionEntry.I odeCollisionEntry.h odeCollisionEntry.I odeCollisionEntry.h
odeHelperStructs.h) odeHelperStructs.h
)
set(P3ODE_SOURCES set(P3ODE_SOURCES
config_ode.cxx config_ode.cxx
@ -62,9 +63,11 @@ set(P3ODE_SOURCES
odePlaneGeom.cxx odeCappedCylinderGeom.cxx odePlaneGeom.cxx odeCappedCylinderGeom.cxx
odeCylinderGeom.cxx odeRayGeom.cxx odeCylinderGeom.cxx odeRayGeom.cxx
odeTriMeshData.cxx odeTriMeshGeom.cxx odeTriMeshData.cxx odeTriMeshGeom.cxx
odeCollisionEntry.cxx) odeCollisionEntry.cxx
)
set(P3ODE_IGATEEXT set(P3ODE_IGATEEXT
odeBody_ext.cxx
odeBody_ext.h odeBody_ext.h
odeBody_ext.I odeBody_ext.I
odeGeom_ext.cxx odeGeom_ext.cxx
@ -76,7 +79,8 @@ set(P3ODE_IGATEEXT
odeSpace_ext.h odeSpace_ext.h
odeSpace_ext.I odeSpace_ext.I
odeUtil_ext.cxx odeUtil_ext.cxx
odeUtil_ext.h) odeUtil_ext.h
)
set(P3ODE_IGATE_SOURCES "${P3ODE_HEADERS};${P3ODE_SOURCES}") set(P3ODE_IGATE_SOURCES "${P3ODE_HEADERS};${P3ODE_SOURCES}")
list(REMOVE_ITEM P3ODE_IGATE_SOURCES "odeHelperStructs.h") list(REMOVE_ITEM P3ODE_IGATE_SOURCES "odeHelperStructs.h")
@ -84,7 +88,8 @@ list(REMOVE_ITEM P3ODE_IGATE_SOURCES "odeHelperStructs.h")
composite_sources(p3ode P3ODE_SOURCES) composite_sources(p3ode P3ODE_SOURCES)
add_library(p3ode ${P3ODE_SOURCES} ${P3ODE_HEADERS}) add_library(p3ode ${P3ODE_SOURCES} ${P3ODE_HEADERS})
set_target_properties(p3ode PROPERTIES DEFINE_SYMBOL BUILDING_PANDAODE) set_target_properties(p3ode PROPERTIES DEFINE_SYMBOL BUILDING_PANDAODE)
target_link_libraries(p3ode p3igateruntime panda PKG::ODE) target_link_libraries(p3ode panda
PKG::ODE)
target_interrogate(p3ode ${P3ODE_IGATE_SOURCES} EXTENSIONS ${P3ODE_IGATEEXT}) target_interrogate(p3ode ${P3ODE_IGATE_SOURCES} EXTENSIONS ${P3ODE_IGATEEXT})
install(TARGETS p3ode DESTINATION lib RUNTIME DESTINATION bin) install(TARGETS p3ode DESTINATION lib RUNTIME DESTINATION bin)