diff --git a/cmake/macros/Interrogate.cmake b/cmake/macros/Interrogate.cmake index 1082865f61..4a17555399 100644 --- a/cmake/macros/Interrogate.cmake +++ b/cmake/macros/Interrogate.cmake @@ -237,7 +237,7 @@ endfunction(interrogate_sources) # Python module when it's initialized. # function(add_python_module module) - if(INTERROGATE_PYTHON_INTERFACE) + if(HAVE_PYTHON AND INTERROGATE_PYTHON_INTERFACE) set(targets) set(link_targets) set(import_flags) @@ -286,11 +286,7 @@ function(add_python_module module) COMMENT "Generating module ${module}" ) - if(BUILD_SHARED_LIBS) - add_library(${module} MODULE "${module}_module.cxx" ${sources}) - else() - add_library(${module} STATIC "${module}_module.cxx" ${sources}) - endif() + add_library(${module} ${MODULE_TYPE} "${module}_module.cxx" ${sources}) target_link_libraries(${module} ${link_targets} ${PYTHON_LIBRARIES} p3dtool) diff --git a/dtool/LocalSetup.cmake b/dtool/LocalSetup.cmake index 134c47f153..c671ec7080 100644 --- a/dtool/LocalSetup.cmake +++ b/dtool/LocalSetup.cmake @@ -180,10 +180,15 @@ check_cxx_compiler_flag(-msse2 HAVE_SSE2) #$[cdefine __USE_LARGEFILE64] # Set LINK_ALL_STATIC if we're building everything as static libraries. +# Also set the library type used for "modules" appropriately. if(BUILD_SHARED_LIBS) set(LINK_ALL_STATIC OFF) + set(MODULE_TYPE "MODULE" + CACHE INTERNAL "" FORCE) else() set(LINK_ALL_STATIC ON) + set(MODULE_TYPE "STATIC" + CACHE INTERNAL "" FORCE) endif() # Now go through all the packages and report whether we have them. diff --git a/dtool/metalibs/dtoolconfig/CMakeLists.txt b/dtool/metalibs/dtoolconfig/CMakeLists.txt index 2c056e30f4..f9417224b3 100644 --- a/dtool/metalibs/dtoolconfig/CMakeLists.txt +++ b/dtool/metalibs/dtoolconfig/CMakeLists.txt @@ -6,12 +6,6 @@ install(TARGETS p3dtoolconfig DESTINATION lib) # Next, panda3d.interrogatedb: -if(BUILD_SHARED_LIBS) - set(libtype MODULE) -else() - set(libtype STATIC) -endif() - if(HAVE_PYTHON AND INTERROGATE_PYTHON_INTERFACE) set(INTERROGATEDB_IGATE ../../src/interrogatedb/interrogate_interface.h @@ -33,7 +27,7 @@ if(HAVE_PYTHON AND INTERROGATE_PYTHON_INTERFACE) COMMENT "Interrogating interrogatedb" ) - add_library(interrogatedb ${libtype} + add_library(interrogatedb ${MODULE_TYPE} "${CMAKE_CURRENT_BINARY_DIR}/interrogatedb_module.cxx") target_use_packages(interrogatedb PYTHON) target_link_libraries(interrogatedb p3dtoolconfig)