CMake: Suppress $(EFFECTIVE_PLATFORM_NAME).

This commit is contained in:
Donny Lawrence 2019-06-23 17:05:45 -05:00 committed by Sam Edwards
parent f0b4d7637b
commit 89bc83c48f
6 changed files with 22 additions and 20 deletions

View File

@ -10,6 +10,8 @@ unset(_version)
enable_testing()
string(REPLACE "$(EFFECTIVE_PLATFORM_NAME)" "" PANDA_CFG_INTDIR "${CMAKE_CFG_INTDIR}")
# Add generic modules to cmake module path,
# and add Panda3D specific modules to cmake module path
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
@ -72,30 +74,30 @@ endif()
if(BUILD_MODELS)
run_pzip(models
"${CMAKE_CURRENT_SOURCE_DIR}/models/"
"${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models"
"${PROJECT_BINARY_DIR}/${PANDA_CFG_INTDIR}/models"
*.egg)
run_pzip(dmodels
"${CMAKE_CURRENT_SOURCE_DIR}/dmodels/src/"
"${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models"
"${PROJECT_BINARY_DIR}/${PANDA_CFG_INTDIR}/models"
*.egg)
add_custom_command(TARGET models
POST_BUILD
COMMAND ${CMAKE_COMMAND}
-DSOURCE="${CMAKE_CURRENT_SOURCE_DIR}/models/maps/"
-DDESTINATION="${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models/maps"
-DDESTINATION="${PROJECT_BINARY_DIR}/${PANDA_CFG_INTDIR}/models/maps"
-P ${PROJECT_SOURCE_DIR}/cmake/scripts/CopyPattern.cmake
COMMENT "Copying models/maps")
add_custom_command(TARGET dmodels
POST_BUILD
COMMAND ${CMAKE_COMMAND}
-DSOURCE="${CMAKE_CURRENT_SOURCE_DIR}/dmodels/src/"
-DDESTINATION="${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models"
-DDESTINATION="${PROJECT_BINARY_DIR}/${PANDA_CFG_INTDIR}/models"
-DFILES_MATCHING="PATTERN;*.rgb;PATTERN;*.png;PATTERN;*.jpg;PATTERN;*.wav"
-P ${PROJECT_SOURCE_DIR}/cmake/scripts/CopyPattern.cmake
COMMENT "Copying dmodels' assets")
install(DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/models"
install(DIRECTORY "${PROJECT_BINARY_DIR}/${PANDA_CFG_INTDIR}/models"
COMPONENT Models DESTINATION share/panda3d)
endif()
@ -104,7 +106,7 @@ if(INTERROGATE_PYTHON_INTERFACE)
# for pytest before adding this test. If the user doesn't have pytest, we'd
# like for the tests to fail.
if(CMAKE_CFG_INTDIR STREQUAL ".")
if(PANDA_CFG_INTDIR STREQUAL ".")
set(_workdir "${PROJECT_BINARY_DIR}")
else()
set(_workdir "${PROJECT_BINARY_DIR}/$<CONFIG>")

View File

@ -113,7 +113,7 @@ function(target_interrogate target)
# Also store where the build files are kept, so the Interrogate output can go
# there as well.
set_target_properties("${target}" PROPERTIES
TARGET_BINDIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
TARGET_BINDIR "${CMAKE_CURRENT_BINARY_DIR}/${PANDA_CFG_INTDIR}")
endfunction(target_interrogate)
@ -313,7 +313,7 @@ function(add_python_module module)
get_target_property(workdir_abs "${target}" TARGET_BINDIR)
if(NOT workdir_abs)
# No TARGET_BINDIR was set, so we'll just use our current directory:
set(workdir_abs "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
set(workdir_abs "${CMAKE_CURRENT_BINARY_DIR}/${PANDA_CFG_INTDIR}")
endif()
# Keep command lines short
file(RELATIVE_PATH workdir_rel "${CMAKE_CURRENT_BINARY_DIR}" "${workdir_abs}")
@ -331,11 +331,11 @@ function(add_python_module module)
endforeach(target)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${module}_module.cxx"
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PANDA_CFG_INTDIR}/${module}_module.cxx"
COMMAND ${CMAKE_COMMAND} -E
make_directory "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}"
make_directory "${CMAKE_CURRENT_BINARY_DIR}/${PANDA_CFG_INTDIR}"
COMMAND host_interrogate_module
-oc "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${module}_module.cxx"
-oc "${CMAKE_CURRENT_BINARY_DIR}/${PANDA_CFG_INTDIR}/${module}_module.cxx"
-module ${modname} -library ${modname}
${import_flags}
${INTERROGATE_MODULE_OPTIONS}
@ -344,7 +344,7 @@ function(add_python_module module)
COMMENT "Generating module ${module}")
add_python_target(${module} COMPONENT "${component}" EXPORT "${component}"
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${module}_module.cxx"
"${CMAKE_CURRENT_BINARY_DIR}/${PANDA_CFG_INTDIR}/${module}_module.cxx"
${sources_abs} ${extensions})
target_link_libraries(${module} ${link_targets})

View File

@ -53,9 +53,9 @@ function(add_python_target target)
if(BUILD_SHARED_LIBS)
if(CMAKE_GENERATOR STREQUAL "Xcode")
# This is explained in CompilerFlags.cmake
set(intdir $<CONFIG>$(EFFECTIVE_PLATFORM_NAME))
set(intdir $<CONFIG>)
else()
set(intdir ${CMAKE_CFG_INTDIR})
set(intdir ${PANDA_CFG_INTDIR})
endif()
set(_outdir "${PROJECT_BINARY_DIR}/${intdir}/${slash_namespace}")
@ -146,7 +146,7 @@ function(install_python_package package_name)
set(src_path "${CMAKE_SOURCE_DIR}/cmake/templates/win32_python")
endif()
set(path "${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${package_name}")
set(path "${PROJECT_BINARY_DIR}/${PANDA_CFG_INTDIR}/${package_name}")
set(args -D "OUTPUT_DIR=${path}")
if(src_path)

View File

@ -33,9 +33,9 @@ set(CMAKE_BINARY_DIR "${CMAKE_BINARY_DIR}/cmake")
if(CMAKE_GENERATOR STREQUAL "Xcode")
# On the Xcode generator, CMake generates a separate make target definition for
# every config, so it ends up spamming warnings once we try to build.
set(intdir $<CONFIG>$(EFFECTIVE_PLATFORM_NAME))
set(intdir $<CONFIG>)
else()
set(intdir ${CMAKE_CFG_INTDIR})
set(intdir ${PANDA_CFG_INTDIR})
endif()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${intdir}/bin")
@ -54,7 +54,7 @@ if(WIN32)
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
# On Windows, modules (DLLs) are located in bin; lib is just for .lib files
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${PANDA_CFG_INTDIR}/bin")
if(BUILD_SHARED_LIBS)
set(MODULE_DESTINATION "bin")
endif()

View File

@ -185,7 +185,7 @@ message("See dtool_config.h for more details about the specified configuration."
message("")
# Generate dtool_config.h
if("${CMAKE_CFG_INTDIR}" STREQUAL ".")
if("${PANDA_CFG_INTDIR}" STREQUAL ".")
# Single-configuration generator
set(intdir ".")
else()

View File

@ -91,7 +91,7 @@ add_component_library(p3dtoolbase NOINIT SYMBOL BUILDING_DTOOL_DTOOLBASE
# Help other libraries find the autogenerated headers
target_include_directories(p3dtoolbase PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/include>)
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/${PANDA_CFG_INTDIR}/include>)
target_link_libraries(p3dtoolbase PKG::EIGEN PKG::THREADS)
target_interrogate(p3dtoolbase ${P3DTOOLBASE_SOURCES} EXTENSIONS ${P3DTOOLBASE_IGATEEXT})