Browse Source

CMake: Add a bunch of pandatool components to the build

Sam Edwards 7 years ago
parent
commit
841e7a9a16

+ 23 - 0
pandatool/CMakeLists.txt

@@ -10,10 +10,33 @@ add_subdirectory(src/dxf)
 add_subdirectory(src/dxfegg)
 add_subdirectory(src/dxfprogs)
 add_subdirectory(src/eggbase)
+add_subdirectory(src/eggcharbase)
+add_subdirectory(src/eggprogs)
+add_subdirectory(src/egg-mkfont)
+add_subdirectory(src/egg-optchar)
+add_subdirectory(src/egg-palettize)
+add_subdirectory(src/egg-qtess)
 add_subdirectory(src/flt)
 add_subdirectory(src/fltegg)
 add_subdirectory(src/fltprogs)
 add_subdirectory(src/gtk-stats)
+add_subdirectory(src/imagebase)
+add_subdirectory(src/imageprogs)
+add_subdirectory(src/lwo)
+add_subdirectory(src/lwoegg)
+add_subdirectory(src/lwoprogs)
+add_subdirectory(src/miscprogs)
+add_subdirectory(src/objegg)
+add_subdirectory(src/objprogs)
+add_subdirectory(src/palettizer)
 add_subdirectory(src/pandatoolbase)
+add_subdirectory(src/pfmprogs)
 add_subdirectory(src/progbase)
 add_subdirectory(src/pstatserver)
+add_subdirectory(src/ptloader)
+add_subdirectory(src/vrml)
+add_subdirectory(src/vrmlegg)
+add_subdirectory(src/vrmlprogs)
+add_subdirectory(src/xfile)
+add_subdirectory(src/xfileegg)
+add_subdirectory(src/xfileprogs)

+ 17 - 0
pandatool/src/egg-mkfont/CMakeLists.txt

@@ -0,0 +1,17 @@
+set(P3EGG_MKFONT_HEADERS
+  eggMakeFont.h
+  rangeDescription.h rangeDescription.I
+  rangeIterator.h rangeIterator.I
+)
+
+set(P3EGG_MKFONT_SOURCES
+  eggMakeFont.cxx
+  rangeDescription.cxx
+  rangeIterator.cxx
+)
+
+composite_sources(egg-mkfont P3EGG_MKFONT_SOURCES)
+add_executable(egg-mkfont ${P3EGG_MKFONT_HEADERS} ${P3EGG_MKFONT_SOURCES})
+target_link_libraries(egg-mkfont p3palettizer p3eggbase p3pandatoolbase)
+
+install(TARGETS egg-mkfont DESTINATION bin)

+ 19 - 0
pandatool/src/egg-optchar/CMakeLists.txt

@@ -0,0 +1,19 @@
+set(P3EGG_OPTCHAR_HEADERS
+  config_egg_optchar.h
+  eggOptchar.h
+  eggOptcharUserData.h eggOptcharUserData.I
+  vertexMembership.h vertexMembership.I
+)
+
+set(P3EGG_OPTCHAR_SOURCES
+  config_egg_optchar.cxx
+  eggOptchar.cxx
+  eggOptcharUserData.cxx
+  vertexMembership.cxx
+)
+
+composite_sources(egg-optchar P3EGG_OPTCHAR_SOURCES)
+add_executable(egg-optchar ${P3EGG_OPTCHAR_HEADERS} ${P3EGG_OPTCHAR_SOURCES})
+target_link_libraries(egg-optchar p3eggcharbase)
+
+install(TARGETS egg-optchar DESTINATION bin)

+ 7 - 0
pandatool/src/egg-palettize/CMakeLists.txt

@@ -0,0 +1,7 @@
+add_executable(egg-palettize eggPalettize.cxx eggPalettize.h)
+target_link_libraries(egg-palettize p3palettizer p3eggbase p3progbase)
+install(TARGETS egg-palettize DESTINATION bin)
+
+add_library(p3txafile txaFileFilter.cxx txaFileFilter.h txaFileFilter.I)
+target_link_libraries(p3txafile p3palettizer)
+install(TARGETS p3txafile DESTINATION lib RUNTIME DESTINATION bin)

+ 27 - 0
pandatool/src/egg-qtess/CMakeLists.txt

@@ -0,0 +1,27 @@
+set(P3EGG_QTESS_HEADERS
+  config_egg_qtess.h
+  eggQtess.h
+  isoPlacer.h isoPlacer.I
+  qtessGlobals.h
+  qtessInputEntry.h qtessInputEntry.I
+  qtessInputFile.h qtessInputFile.I
+  qtessSurface.h qtessSurface.I
+  subdivSegment.h subdivSegment.I
+)
+
+set(P3EGG_QTESS_SOURCES
+  config_egg_qtess.cxx
+  eggQtess.cxx
+  isoPlacer.cxx
+  qtessGlobals.cxx
+  qtessInputEntry.cxx
+  qtessInputFile.cxx
+  qtessSurface.cxx
+  subdivSegment.cxx
+)
+
+composite_sources(egg-qtess P3EGG_QTESS_SOURCES)
+add_executable(egg-qtess ${P3EGG_QTESS_HEADERS} ${P3EGG_QTESS_SOURCES})
+target_link_libraries(egg-qtess p3eggbase)
+
+install(TARGETS egg-qtess DESTINATION bin)

+ 42 - 0
pandatool/src/eggcharbase/CMakeLists.txt

@@ -0,0 +1,42 @@
+set(P3EGGCHARBASE_HEADERS
+  config_eggcharbase.h
+  eggBackPointer.h
+  eggCharacterCollection.h eggCharacterCollection.I
+  eggCharacterData.h eggCharacterData.I
+  eggCharacterDb.h eggCharacterDb.I
+  eggCharacterFilter.h
+  eggComponentData.h eggComponentData.I
+  eggJointData.h eggJointData.I
+  eggJointNodePointer.h
+  eggJointPointer.h eggJointPointer.I
+  eggMatrixTablePointer.h
+  eggScalarTablePointer.h
+  eggSliderData.h eggSliderData.I
+  eggSliderPointer.h
+  eggVertexPointer.h
+)
+
+set(P3EGGCHARBASE_SOURCES
+  config_eggcharbase.cxx
+  eggBackPointer.cxx
+  eggCharacterCollection.cxx
+  eggCharacterData.cxx
+  eggCharacterDb.cxx
+  eggCharacterFilter.cxx
+  eggComponentData.cxx
+  eggJointData.cxx
+  eggJointNodePointer.cxx
+  eggJointPointer.cxx
+  eggMatrixTablePointer.cxx
+  eggScalarTablePointer.cxx
+  eggSliderData.cxx
+  eggSliderPointer.cxx
+  eggVertexPointer.cxx
+)
+
+composite_sources(p3eggcharbase P3EGGCHARBASE_SOURCES)
+add_library(p3eggcharbase STATIC ${P3EGGCHARBASE_HEADERS} ${P3EGGCHARBASE_SOURCES})
+target_link_libraries(p3eggcharbase p3eggbase)
+
+# This is only needed for binaries in the pandatool package. It is not useful
+# for user applications, so it is not installed.

+ 35 - 0
pandatool/src/eggprogs/CMakeLists.txt

@@ -0,0 +1,35 @@
+add_executable(egg-crop eggCrop.cxx eggCrop.h)
+target_link_libraries(egg-crop p3eggbase)
+install(TARGETS egg-crop DESTINATION bin)
+
+add_executable(egg-list-textures eggListTextures.cxx eggListTextures.h)
+target_link_libraries(egg-list-textures p3eggbase)
+install(TARGETS egg-list-textures DESTINATION bin)
+
+add_executable(egg-make-tube eggMakeTube.cxx eggMakeTube.h)
+target_link_libraries(egg-make-tube p3eggbase)
+install(TARGETS egg-make-tube DESTINATION bin)
+
+add_executable(egg-rename eggRename.cxx eggRename.h)
+target_link_libraries(egg-rename p3eggbase)
+install(TARGETS egg-rename DESTINATION bin)
+
+add_executable(egg-retarget-anim eggRetargetAnim.cxx eggRetargetAnim.h)
+target_link_libraries(egg-retarget-anim p3eggcharbase)
+install(TARGETS egg-retarget-anim DESTINATION bin)
+
+add_executable(egg-texture-cards eggTextureCards.cxx eggTextureCards.h)
+target_link_libraries(egg-texture-cards p3eggbase)
+install(TARGETS egg-texture-cards DESTINATION bin)
+
+add_executable(egg2c eggToC.cxx eggToC.h)
+target_link_libraries(egg2c p3eggbase)
+install(TARGETS egg2c DESTINATION bin)
+
+add_executable(egg-topstrip eggTopstrip.cxx eggTopstrip.h)
+target_link_libraries(egg-topstrip p3eggcharbase)
+install(TARGETS egg-topstrip DESTINATION bin)
+
+add_executable(egg-trans eggTrans.cxx eggTrans.h)
+target_link_libraries(egg-trans p3eggbase)
+install(TARGETS egg-trans DESTINATION bin)

+ 20 - 0
pandatool/src/imagebase/CMakeLists.txt

@@ -0,0 +1,20 @@
+set(P3IMAGEBASE_HEADERS
+  imageBase.h
+  imageFilter.h
+  imageReader.h
+  imageWriter.h imageWriter.I
+)
+
+set(P3IMAGEBASE_SOURCES
+  imageBase.cxx
+  imageFilter.cxx
+  imageReader.cxx
+  imageWriter.cxx
+)
+
+composite_sources(p3imagebase P3IMAGEBASE_SOURCES)
+add_library(p3imagebase STATIC ${P3IMAGEBASE_HEADERS} ${P3IMAGEBASE_SOURCES})
+target_link_libraries(p3imagebase p3progbase)
+
+# This is only needed for binaries in the pandatool package. It is not useful
+# for user applications, so it is not installed.

+ 19 - 0
pandatool/src/imageprogs/CMakeLists.txt

@@ -0,0 +1,19 @@
+add_executable(image-fix-hidden-color imageFixHiddenColor.cxx imageFixHiddenColor.h)
+target_link_libraries(image-fix-hidden-color p3imagebase)
+install(TARGETS image-fix-hidden-color DESTINATION bin)
+
+add_executable(image-info imageInfo.cxx imageInfo.h)
+target_link_libraries(image-info p3imagebase)
+install(TARGETS image-info DESTINATION bin)
+
+add_executable(image-resize imageResize.cxx imageResize.h)
+target_link_libraries(image-resize p3imagebase)
+install(TARGETS image-resize DESTINATION bin)
+
+add_executable(image-transform-colors imageTransformColors.cxx imageTransformColors.h)
+target_link_libraries(image-transform-colors p3imagebase)
+install(TARGETS image-transform-colors DESTINATION bin)
+
+add_executable(image-trans imageTrans.cxx imageTrans.h)
+target_link_libraries(image-trans p3imagebase)
+install(TARGETS image-trans DESTINATION bin)

+ 69 - 0
pandatool/src/lwo/CMakeLists.txt

@@ -0,0 +1,69 @@
+set(P3LWO_HEADERS
+  config_lwo.h
+  iffChunk.h iffChunk.I
+  iffGenericChunk.h iffGenericChunk.I
+  iffId.h iffId.I
+  iffInputFile.h iffInputFile.I
+  lwoBoundingBox.h
+  lwoChunk.h
+  lwoClip.h
+  lwoDiscontinuousVertexMap.h
+  lwoGroupChunk.h
+  lwoHeader.h lwoHeader.I
+  lwoInputFile.h lwoInputFile.I
+  lwoLayer.h
+  lwoPoints.h
+  lwoPolygons.h lwoPolygonTags.h
+  lwoStillImage.h
+  lwoSurfaceBlockAxis.h lwoSurfaceBlockChannel.h lwoSurfaceBlockCoordSys.h
+  lwoSurfaceBlockEnabled.h lwoSurfaceBlock.h lwoSurfaceBlockHeader.h
+  lwoSurfaceBlockImage.h lwoSurfaceBlockOpacity.h lwoSurfaceBlockProjection.h
+  lwoSurfaceBlockRefObj.h lwoSurfaceBlockRepeat.h lwoSurfaceBlockTMap.h
+  lwoSurfaceBlockTransform.h lwoSurfaceBlockVMapName.h lwoSurfaceBlockWrap.h
+  lwoSurfaceColor.h
+  lwoSurface.h
+  lwoSurfaceParameter.h
+  lwoSurfaceSidedness.h
+  lwoSurfaceSmoothingAngle.h
+  lwoTags.h
+  lwoVertexMap.h
+)
+
+set(P3LWO_SOURCES
+  config_lwo.cxx
+  iffChunk.cxx
+  iffGenericChunk.cxx
+  iffId.cxx
+  iffInputFile.cxx
+  lwoBoundingBox.cxx
+  lwoChunk.cxx
+  lwoClip.cxx
+  lwoDiscontinuousVertexMap.cxx
+  lwoGroupChunk.cxx
+  lwoHeader.cxx
+  lwoInputFile.cxx
+  lwoLayer.cxx
+  lwoPoints.cxx
+  lwoPolygons.cxx
+  lwoPolygonTags.cxx
+  lwoStillImage.cxx
+  lwoSurfaceBlockAxis.cxx lwoSurfaceBlockChannel.cxx lwoSurfaceBlockCoordSys.cxx
+  lwoSurfaceBlock.cxx lwoSurfaceBlockEnabled.cxx lwoSurfaceBlockHeader.cxx
+  lwoSurfaceBlockImage.cxx lwoSurfaceBlockOpacity.cxx lwoSurfaceBlockProjection.cxx
+  lwoSurfaceBlockRefObj.cxx lwoSurfaceBlockRepeat.cxx lwoSurfaceBlockTMap.cxx
+  lwoSurfaceBlockTransform.cxx lwoSurfaceBlockVMapName.cxx lwoSurfaceBlockWrap.cxx
+  lwoSurfaceColor.cxx
+  lwoSurface.cxx
+  lwoSurfaceParameter.cxx
+  lwoSurfaceSidedness.cxx
+  lwoSurfaceSmoothingAngle.cxx
+  lwoTags.cxx
+  lwoVertexMap.cxx
+)
+
+composite_sources(p3lwo P3LWO_SOURCES)
+add_library(p3lwo STATIC ${P3LWO_HEADERS} ${P3LWO_SOURCES})
+target_link_libraries(p3lwo p3pandatoolbase)
+
+# This is only needed for binaries in the pandatool package. It is not useful
+# for user applications, so it is not installed.

+ 27 - 0
pandatool/src/lwoegg/CMakeLists.txt

@@ -0,0 +1,27 @@
+set(P3LWOEGG_HEADERS
+  cLwoClip.h cLwoClip.I
+  cLwoLayer.h cLwoLayer.I
+  cLwoPoints.h cLwoPoints.I
+  cLwoPolygons.h cLwoPolygons.I
+  cLwoSurfaceBlock.h cLwoSurfaceBlock.I
+  cLwoSurfaceBlockTMap.h cLwoSurfaceBlockTMap.I
+  cLwoSurface.h cLwoSurface.I
+  lwoToEggConverter.h lwoToEggConverter.I
+)
+
+set(P3LWOEGG_SOURCES
+  cLwoClip.cxx
+  cLwoLayer.cxx
+  cLwoPoints.cxx
+  cLwoPolygons.cxx
+  cLwoSurfaceBlock.cxx
+  cLwoSurfaceBlockTMap.cxx
+  cLwoSurface.cxx
+  lwoToEggConverter.cxx
+)
+
+add_library(p3lwoegg STATIC ${P3LWOEGG_HEADERS} ${P3LWOEGG_SOURCES})
+target_link_libraries(p3lwoegg p3lwo p3eggbase)
+
+# This is only needed for binaries in the pandatool package. It is not useful
+# for user applications, so it is not installed.

+ 7 - 0
pandatool/src/lwoprogs/CMakeLists.txt

@@ -0,0 +1,7 @@
+add_executable(lwo-scan lwoScan.cxx lwoScan.h)
+target_link_libraries(lwo-scan p3progbase p3lwo)
+install(TARGETS lwo-scan DESTINATION bin)
+
+add_executable(lwo2egg lwoToEgg.cxx lwoToEgg.h)
+target_link_libraries(lwo2egg p3lwoegg p3eggbase p3progbase)
+install(TARGETS lwo2egg DESTINATION bin)

+ 3 - 0
pandatool/src/miscprogs/CMakeLists.txt

@@ -0,0 +1,3 @@
+add_executable(bin2c binToC.cxx binToC.h)
+target_link_libraries(bin2c p3progbase)
+install(TARGETS bin2c DESTINATION bin)

+ 19 - 0
pandatool/src/objegg/CMakeLists.txt

@@ -0,0 +1,19 @@
+set(P3OBJEGG_HEADERS
+  config_objegg.h
+  eggToObjConverter.h
+  objToEggConverter.h
+  objToEggConverter.I
+)
+
+set(P3OBJEGG_SOURCES
+  config_objegg.cxx
+  eggToObjConverter.cxx
+  objToEggConverter.cxx
+)
+
+composite_sources(p3objegg P3OBJEGG_SOURCES)
+add_library(p3objegg STATIC ${P3OBJEGG_HEADERS} ${P3OBJEGG_SOURCES})
+target_link_libraries(p3objegg p3eggbase)
+
+# This is only needed for binaries in the pandatool package. It is not useful
+# for user applications, so it is not installed.

+ 7 - 0
pandatool/src/objprogs/CMakeLists.txt

@@ -0,0 +1,7 @@
+add_executable(egg2obj eggToObj.cxx eggToObj.h)
+target_link_libraries(egg2obj p3objegg p3eggbase)
+install(TARGETS egg2obj DESTINATION bin)
+
+add_executable(obj2egg objToEgg.cxx objToEgg.h)
+target_link_libraries(obj2egg p3objegg p3eggbase p3progbase)
+install(TARGETS obj2egg DESTINATION bin)

+ 56 - 0
pandatool/src/palettizer/CMakeLists.txt

@@ -0,0 +1,56 @@
+set(P3PALETTIZER_HEADERS
+  config_palettizer.h
+  destTextureImage.h
+  eggFile.h
+  filenameUnifier.h
+  imageFile.h
+  omitReason.h
+  paletteGroup.h
+  paletteGroups.h
+  paletteImage.h
+  palettePage.h
+  palettizer.h
+  pal_string_utils.h
+  sourceTextureImage.h
+  textureImage.h
+  textureMemoryCounter.h
+  texturePlacement.h
+  texturePosition.h
+  textureProperties.h
+  textureReference.h
+  textureRequest.h
+  txaFile.h
+  txaLine.h
+)
+
+set(P3PALETTIZER_SOURCES
+  config_palettizer.cxx
+  destTextureImage.cxx
+  eggFile.cxx
+  filenameUnifier.cxx
+  imageFile.cxx
+  omitReason.cxx
+  paletteGroup.cxx
+  paletteGroups.cxx
+  paletteImage.cxx
+  palettePage.cxx
+  palettizer.cxx
+  pal_string_utils.cxx
+  sourceTextureImage.cxx
+  textureImage.cxx
+  textureMemoryCounter.cxx
+  texturePlacement.cxx
+  texturePosition.cxx
+  textureProperties.cxx
+  textureReference.cxx
+  textureRequest.cxx
+  txaFile.cxx
+  txaLine.cxx
+)
+
+composite_sources(p3palettizer P3PALETTIZER_SOURCES)
+add_library(p3palettizer STATIC ${P3PALETTIZER_HEADERS} ${P3PALETTIZER_SOURCES})
+target_link_libraries(p3palettizer p3progbase p3converter)
+
+# This is only needed for binaries in the pandatool package. It is not useful
+# for user applications, so it is not installed.

+ 7 - 0
pandatool/src/pandatoolbase/CMakeLists.txt

@@ -20,5 +20,12 @@ composite_sources(p3pandatoolbase P3PANDATOOLBASE_SOURCES)
 add_library(p3pandatoolbase STATIC ${P3PANDATOOLBASE_HEADERS} ${P3PANDATOOLBASE_SOURCES})
 target_link_libraries(p3pandatoolbase panda)
 
+# ptloader - a module - may need to link in libraries in this package, so:
+if(MODULE_TYPE STREQUAL "MODULE")
+  set_target_properties(p3pandatoolbase PROPERTIES
+    POSITION_INDEPENDENT_CODE ON
+    INTERFACE_POSITION_INDEPENDENT_CODE ON)
+endif()
+
 # This is only needed for binaries in the pandatool package. It is not useful
 # for user applications, so it is not installed.

+ 9 - 0
pandatool/src/pfmprogs/CMakeLists.txt

@@ -0,0 +1,9 @@
+add_executable(pfm-bba
+  config_pfmprogs.cxx config_pfmprogs.h
+  pfmBba.cxx pfmBba.h)
+target_link_libraries(pfm-bba p3progbase)
+install(TARGETS pfm-bba DESTINATION bin)
+
+add_executable(pfm-trans pfmTrans.cxx pfmTrans.h)
+target_link_libraries(pfm-trans p3progbase)
+install(TARGETS pfm-trans DESTINATION bin)

+ 18 - 0
pandatool/src/ptloader/CMakeLists.txt

@@ -0,0 +1,18 @@
+set(P3PTLOADER_HEADERS
+  config_ptloader.h
+  loaderFileTypePandatool.h
+)
+
+set(P3PTLOADER_SOURCES
+  config_ptloader.cxx
+  loaderFileTypePandatool.cxx
+)
+
+composite_sources(p3ptloader P3PTLOADER_SOURCES)
+add_library(p3ptloader ${MODULE_TYPE} ${P3PTLOADER_HEADERS} ${P3PTLOADER_SOURCES})
+set_target_properties(p3ptloader PROPERTIES DEFINE_SYMBOL BUILDING_PTLOADER)
+target_link_libraries(p3ptloader
+  p3dxfegg p3fltegg p3lwoegg p3objegg p3vrmlegg p3xfileegg
+  p3converter)
+
+install(TARGETS p3ptloader DESTINATION ${MODULE_DESTINATION})

+ 30 - 0
pandatool/src/vrml/CMakeLists.txt

@@ -0,0 +1,30 @@
+add_bison_target(vrmlParser.cxx vrmlParser.yxx DEFINES vrmlParser.h PREFIX vrmlyy)
+add_flex_target(vrmlLexer.cxx vrmlLexer.lxx CASE_INSENSITIVE PREFIX vrmlyy)
+
+set(P3VRML_HEADERS
+  parse_vrml.h
+  standard_nodes.h
+  vrmlLexerDefs.h
+  vrmlNode.h
+  vrmlNodeType.h
+  vrmlParserDefs.h
+)
+
+set(P3VRML_SOURCES
+  parse_vrml.cxx
+  standard_nodes.cxx
+  vrmlNode.cxx
+  vrmlNodeType.cxx
+)
+
+set(P3VRML_PARSER_SOURCES
+  vrmlParser.cxx
+  vrmlLexer.cxx
+)
+
+composite_sources(p3vrml P3VRML_SOURCES)
+add_library(p3vrml STATIC ${P3VRML_HEADERS} ${P3VRML_SOURCES} ${P3VRML_PARSER_SOURCES})
+target_link_libraries(p3vrml p3pandatoolbase)
+
+# This is only needed for binaries in the pandatool package. It is not useful
+# for user applications, so it is not installed.

+ 18 - 0
pandatool/src/vrmlegg/CMakeLists.txt

@@ -0,0 +1,18 @@
+set(P3VRMLEGG_HEADERS
+  indexedFaceSet.h
+  vrmlAppearance.h
+  vrmlToEggConverter.h
+)
+
+set(P3VRMLEGG_SOURCES
+  indexedFaceSet.cxx
+  vrmlAppearance.cxx
+  vrmlToEggConverter.cxx
+)
+
+composite_sources(p3vrmlegg P3VRMLEGG_SOURCES)
+add_library(p3vrmlegg STATIC ${P3VRMLEGG_HEADERS} ${P3VRMLEGG_SOURCES})
+target_link_libraries(p3vrmlegg p3vrml p3eggbase)
+
+# This is only needed for binaries in the pandatool package. It is not useful
+# for user applications, so it is not installed.

+ 7 - 0
pandatool/src/vrmlprogs/CMakeLists.txt

@@ -0,0 +1,7 @@
+add_executable(vrml-trans vrmlTrans.cxx vrmlTrans.h)
+target_link_libraries(vrml-trans p3progbase p3vrml)
+install(TARGETS vrml-trans DESTINATION bin)
+
+add_executable(vrml2egg vrmlToEgg.cxx vrmlToEgg.h)
+target_link_libraries(vrml2egg p3vrmlegg p3eggbase p3progbase)
+install(TARGETS vrml2egg DESTINATION bin)

+ 56 - 0
pandatool/src/xfile/CMakeLists.txt

@@ -0,0 +1,56 @@
+add_bison_target(xParser.cxx xParser.yxx DEFINES xParser.h PREFIX xyy)
+add_flex_target(xLexer.cxx xLexer.lxx CASE_INSENSITIVE PREFIX xyy)
+
+set(P3XFILE_HEADERS
+  config_xfile.h
+  standard_templates.h
+  windowsGuid.h windowsGuid.I
+  xFileArrayDef.h xFileArrayDef.I
+  xFileDataDef.h xFileDataDef.I
+  xFileDataNode.h xFileDataNode.I
+  xFileDataNodeReference.h xFileDataNodeReference.I
+  xFileDataNodeTemplate.h xFileDataNodeTemplate.I
+  xFileDataObjectArray.h xFileDataObjectArray.I
+  xFileDataObjectDouble.h xFileDataObjectDouble.I
+  xFileDataObject.h xFileDataObject.I
+  xFileDataObjectInteger.h xFileDataObjectInteger.I
+  xFileDataObjectString.h xFileDataObjectString.I
+  xFile.h xFile.I
+  xFileNode.h xFileNode.I
+  xFileParseData.h xFileParseData.I
+  xFileTemplate.h xFileTemplate.I
+  xLexerDefs.h
+  xParserDefs.h
+)
+
+set(P3XFILE_SOURCES
+  config_xfile.cxx
+  standard_templates.cxx
+  windowsGuid.cxx
+  xFileArrayDef.cxx
+  xFile.cxx
+  xFileDataDef.cxx
+  xFileDataNode.cxx
+  xFileDataNodeReference.cxx
+  xFileDataNodeTemplate.cxx
+  xFileDataObjectArray.cxx
+  xFileDataObject.cxx
+  xFileDataObjectDouble.cxx
+  xFileDataObjectInteger.cxx
+  xFileDataObjectString.cxx
+  xFileNode.cxx
+  xFileParseData.cxx
+  xFileTemplate.cxx
+)
+
+set(P3XFILE_PARSER_SOURCES
+  xParser.cxx
+  xLexer.cxx
+)
+
+composite_sources(p3xfile P3XFILE_SOURCES)
+add_library(p3xfile STATIC ${P3XFILE_HEADERS} ${P3XFILE_SOURCES} ${P3XFILE_PARSER_SOURCES})
+target_link_libraries(p3xfile p3pandatoolbase)
+
+# This is only needed for binaries in the pandatool package. It is not useful
+# for user applications, so it is not installed.

+ 22 - 0
pandatool/src/xfileegg/CMakeLists.txt

@@ -0,0 +1,22 @@
+set(P3XFILEEGG_HEADERS
+  xFileAnimationSet.h xFileAnimationSet.I
+  xFileFace.h xFileMaker.h
+  xFileMaterial.h xFileMesh.h xFileNormal.h
+  xFileToEggConverter.h
+  xFileVertex.h xFileVertexPool.h
+)
+
+set(P3XFILEEGG_SOURCES
+  xFileAnimationSet.cxx
+  xFileFace.cxx xFileMaker.cxx
+  xFileMaterial.cxx xFileMesh.cxx xFileNormal.cxx
+  xFileToEggConverter.cxx
+  xFileVertex.cxx
+)
+
+composite_sources(p3xfileegg P3XFILEEGG_SOURCES)
+add_library(p3xfileegg STATIC ${P3XFILEEGG_HEADERS} ${P3XFILEEGG_SOURCES})
+target_link_libraries(p3xfileegg p3xfile p3eggbase)
+
+# This is only needed for binaries in the pandatool package. It is not useful
+# for user applications, so it is not installed.

+ 11 - 0
pandatool/src/xfileprogs/CMakeLists.txt

@@ -0,0 +1,11 @@
+add_executable(egg2x eggToX.cxx eggToX.h)
+target_link_libraries(egg2x p3xfileegg p3eggbase p3progbase)
+install(TARGETS egg2x DESTINATION bin)
+
+add_executable(x-trans xFileTrans.cxx xFileTrans.h)
+target_link_libraries(x-trans p3progbase p3xfile)
+install(TARGETS x-trans DESTINATION bin)
+
+add_executable(x2egg xFileToEgg.cxx xFileToEgg.h)
+target_link_libraries(x2egg p3xfileegg p3eggbase p3progbase)
+install(TARGETS x2egg DESTINATION bin)