Finally got CMake compilation to work.
authorNicholas Bishop <nicholasbishop@gmail.com>
Wed, 31 Dec 2008 04:47:01 +0000 (04:47 +0000)
committerNicholas Bishop <nicholasbishop@gmail.com>
Wed, 31 Dec 2008 04:47:01 +0000 (04:47 +0000)
Made sdna and srna work more like how the scons build system is doing it, with separate bf_rna and bf_dna libs being built.

CMakeLists.txt
source/blender/makesdna/intern/CMakeLists.txt
source/blender/makesrna/intern/CMakeLists.txt
source/creator/CMakeLists.txt

index e01a37d3b3edfa2d2b834cd4d020c77c977686cf..4d722d3ca9cd72540fe027877c43afeb5153cff1 100644 (file)
@@ -184,7 +184,7 @@ IF(UNIX)
 
   SET(ZLIB_LIB z)
 
-  SET(LLIBS "-lXi -lutil -lc -lm -lpthread -lstdc++")
+  SET(LLIBS "-lXi -lutil -lc -lm -lpthread -lstdc++ -lX11 -ldl")
 
   IF(WITH_OPENMP)
     SET(LLIBS "${LLIBS} -lgomp")
index a85f561da92f2e79d481e2261f8bf5d1c76bcdc0..6024799f8526e5f4d6ae27bc71d247882f7fd82f 100644 (file)
 #
 # ***** END GPL LICENSE BLOCK *****
 
-SET(SRC makesdna.c ../../../../intern/guardedalloc/intern/mallocn.c ../../../../intern/guardedalloc/intern/mmap_win.c)
-
 INCLUDE_DIRECTORIES(../../../../intern/guardedalloc ..)
-
 FILE(GLOB INC_FILES ../*.h)
+
+# Build makesdna executable
+SET(SRC makesdna.c ../../../../intern/guardedalloc/intern/mallocn.c ../../../../intern/guardedalloc/intern/mmap_win.c)
 ADD_EXECUTABLE(makesdna ${SRC} ${INC_FILES})
 
+# Output dna.c
+ADD_CUSTOM_COMMAND(
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/dna.c
+  COMMAND ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/makesdna ${CMAKE_CURRENT_BINARY_DIR}/dna.c ${CMAKE_SOURCE_DIR}/source/blender/makesdna/
+  DEPENDS makesdna
+)
+
+# Build bf_dna library
+SET(SRC dna_genfile.c dna.c)
+BLENDERLIB(bf_dna "${SRC}" "${INC}")
+
 MESSAGE(STATUS "Configuring makesdna")
index b0d8c34170881eb581ed420d4e64db565901fb05..ed804d8effe9cbd6f5e0326ca4c4cea0bf0ceffc 100644 (file)
 #
 # ***** END GPL LICENSE BLOCK *****
 
-FILE(GLOB SRC *.c ../../../../intern/guardedalloc/intern/mallocn.c ../../../../intern/guardedalloc/intern/mmap_win.c)
-
-INCLUDE_DIRECTORIES(../../../../intern/guardedalloc .. ../../makesdna ../../blenkernel ../../blenlib)
+SET(SRC
+     makesrna.c
+     rna_actuator.c
+     rna_armature.c
+     rna_brush.c
+     rna_camera.c
+     rna_color.c
+     rna_constraint.c
+     rna_controller.c
+     rna_curve.c
+     rna_define.c
+     rna_fluidsim.c
+     rna_group.c
+     rna_ID.c
+     rna_image.c
+     rna_ipo.c
+     rna_key.c
+     rna_lamp.c
+     rna_lattice.c
+     rna_main.c
+     rna_material.c
+     rna_mesh.c
+     rna_meta.c
+     rna_modifier.c
+     rna_nodetree.c
+     rna_object.c
+     rna_packedfile.c
+     rna_property.c
+     rna_radio.c
+     rna_rna.c
+     rna_scene.c
+     rna_screen.c
+     rna_sensor.c
+     rna_sequence.c
+     rna_sound.c
+     rna_vfont.c
+     rna_wm.c
+     rna_world.c
+     ../../../../intern/guardedalloc/intern/mallocn.c
+     ../../../../intern/guardedalloc/intern/mmap_win.c)
 
+INCLUDE_DIRECTORIES(../../../../intern/guardedalloc .. ../../makesdna ../../blenkernel ../../blenlib .)
 FILE(GLOB INC_FILES ../*.h ../../makesdna/*.h)
+
+# Build makesrna executable
 ADD_EXECUTABLE(makesrna ${SRC} ${INC_FILES})
+TARGET_LINK_LIBRARIES(makesrna bf_dna)
+
+# Output rna.c
+ADD_CUSTOM_COMMAND(
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rna.c
+  COMMAND ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/makesrna ${CMAKE_CURRENT_BINARY_DIR}/rna.c ${CMAKE_SOURCE_DIR}/source/blender/makesrna/
+  DEPENDS makesrna
+)
+
+# Build bf_rna
+SET(SRC rna_access.c rna_dependency.c rna.c)
+BLENDERLIB(bf_rna "${SRC}" "${INC}")
 
 MESSAGE(STATUS "Configuring makesrna")
index 2ddc1d61703db610915565659225b622aac9429c..63e1a32949389230d98d9f4cf5883c109fda9a0f 100644 (file)
@@ -30,6 +30,8 @@ INCLUDE_DIRECTORIES(../../intern/guardedalloc
   ../blender/blenlib
   ../blender/blenkernel
   ../blender/editors/include
+  ../blender/makesrna
+  ../blender/makesrna/intern
   ../blender/nodes
   ../blender/include
   ../blender/blenloader
@@ -275,6 +277,8 @@ IF(UNIX)
     extern_binreloc
     extern_glew
     bf_videotex
+    bf_rna
+    bf_dna
   )
 
   FOREACH(SORTLIB ${BLENDER_SORTED_LIBS})