aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/others/mimesh/CMakeLists.txt
blob: 657a041594ffac4b5d2869a5452bb02185e94f12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# -*- cmake -*-

include(00-Common)
include(LLCommon)
include(LLImage)
include(LLInventory)
include(LLMath)
include(LLMessage)
include(LLPrimitive)
include(LLRender)
include(LLWindow)
include(LLXML)
include(mimesh)
include(Linking)
include(UI)

find_package(Libgsf REQUIRED)
find_package(Libmagic REQUIRED)

include_directories(
    ${LLCOMMON_INCLUDE_DIRS}
    ${LIBS_PREBUILT_DIR}/include/jpeglib  # Coz JPEG.cmake seems to want to grab the system headers instead.  Though it works fine for llimage.
    ${LLIMAGE_INCLUDE_DIRS}
    ${LLINVENTORY_INCLUDE_DIRS}
    ${LLMATH_INCLUDE_DIRS}
    ${LLMESSAGE_INCLUDE_DIRS}
    ${LLPRIMITIVE_INCLUDE_DIRS}
    ${LLRENDER_INCLUDE_DIRS}
    ${LLWINDOW_INCLUDE_DIRS}
    ${LLXML_INCLUDE_DIRS}
    ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/libxml2
    ${LIBGSF_INCLUDE_DIRS}
    ${LIBMAGIC_INCLUDE_DIRS}
    ${G3D_INCLUDE_DIRS}
    ${CMAKE_SOURCE_DIR}/newview
)


macro(add_mimesh_library name type path)

    project(${name})

    # Note, will have to rebuild from scratch when adding or deleting a file.
    if (${ARGC} EQUAL 3)
	file(GLOB ${name}_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${path}/*.c ${path}/*.cpp)
	file(GLOB ${name}_HEADER_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${path}/*.h)
    else (${ARGC} EQUAL 3)
	file(GLOB ${name}_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${path}/${ARGV3})
    endif (${ARGC} EQUAL 3)

    list(APPEND ${name}_SOURCE_FILES ${${name}_HEADER_FILES})
    add_library(${name} ${type} ${${name}_SOURCE_FILES})

    if (DARWIN)
	# don't embed a full path in the library's install name
	set_target_properties(
	    ${name}
	    PROPERTIES
	    BUILD_WITH_INSTALL_RPATH 1
	    INSTALL_NAME_DIR "@executable_path/../Resources"
	    )
    endif (DARWIN)

#    set_target_properties(
#	 ${name}
#	PROPERTIES
#	LINK_FLAGS "-export-dynamic -no-undefined"
#    )

    target_link_libraries(${name} ${${name}_link_LIBRARIES})

    install(TARGETS ${name}
	ARCHIVE DESTINATION ${CMAKE_CURRENT_BINARY_DIR}	# This is just be a dummy.
	LIBRARY DESTINATION lib/libg3d
	)

endmacro(add_mimesh_library)


set(g3d_link_LIBRARIES
    ${LIBGSF_LIBRARIES}
    ${LIBMAGIC_LIBRARIES}
    )
add_mimesh_library(g3d STATIC libg3d-0.0.8/src)
add_mimesh_library(mimesh STATIC ".")

#   3ds		- Still using g3d_texture_load, which I removed.
#   heightfield	- too buggy to use.
#   ldraw	- needs a ldraw parts library installed.
#   leocad	- needs a leocad parts library installed.
#   test	- no point, it's for testing.  lol
#   vrml	- failed to load ./lib/libg3d/libg3d_plugin_vrml.so: ./lib/libg3d/libg3d_plugin_vrml.so: undefined symbol: yywrap
add_mimesh_library(g3d_plugin_3dm SHARED libg3d-0.0.8/plugins/import/imp_3dm)
add_mimesh_library(g3d_plugin_3dmf SHARED libg3d-0.0.8/plugins/import/imp_3dmf)
#add_mimesh_library(g3d_plugin_3ds SHARED libg3d-0.0.8/plugins/import/imp_3ds)
add_mimesh_library(g3d_plugin_ac3d SHARED libg3d-0.0.8/plugins/import/imp_ac3d)
add_mimesh_library(g3d_plugin_acf SHARED libg3d-0.0.8/plugins/import/imp_acf)
add_mimesh_library(g3d_plugin_ar SHARED libg3d-0.0.8/plugins/import/imp_ar)
add_mimesh_library(g3d_plugin_ase SHARED libg3d-0.0.8/plugins/import/imp_ase)
add_mimesh_library(g3d_plugin_blend SHARED libg3d-0.0.8/plugins/import/imp_blend)
add_mimesh_library(g3d_plugin_c4d SHARED libg3d-0.0.8/plugins/import/imp_c4d)
add_mimesh_library(g3d_plugin_cob SHARED libg3d-0.0.8/plugins/import/imp_cob)
add_mimesh_library(g3d_plugin_dae SHARED libg3d-0.0.8/plugins/import/imp_dae)
add_mimesh_library(g3d_plugin_dpm SHARED libg3d-0.0.8/plugins/import/imp_dpm)
add_mimesh_library(g3d_plugin_dxf SHARED libg3d-0.0.8/plugins/import/imp_dxf)
add_mimesh_library(g3d_plugin_flt SHARED libg3d-0.0.8/plugins/import/imp_flt)
add_mimesh_library(g3d_plugin_glb SHARED libg3d-0.0.8/plugins/import/imp_glb)
#add_mimesh_library(g3d_plugin_heightfield SHARED libg3d-0.0.8/plugins/import/imp_heightfield)
add_mimesh_library(g3d_plugin_iob SHARED libg3d-0.0.8/plugins/import/imp_iob)
add_mimesh_library(g3d_plugin_joe SHARED libg3d-0.0.8/plugins/import/imp_joe)
add_mimesh_library(g3d_plugin_kmz SHARED libg3d-0.0.8/plugins/import/imp_kmz)
add_mimesh_library(g3d_plugin_ldraw SHARED libg3d-0.0.8/plugins/import/imp_ldraw)
add_mimesh_library(g3d_plugin_leocad SHARED libg3d-0.0.8/plugins/import/imp_leocad)
add_mimesh_library(g3d_plugin_lwo SHARED libg3d-0.0.8/plugins/import/imp_lwo)
add_mimesh_library(g3d_plugin_max SHARED libg3d-0.0.8/plugins/import/imp_max)
add_mimesh_library(g3d_plugin_maya SHARED libg3d-0.0.8/plugins/import/imp_maya)
add_mimesh_library(g3d_plugin_md2 SHARED libg3d-0.0.8/plugins/import/imp_md2)
add_mimesh_library(g3d_plugin_md3 SHARED libg3d-0.0.8/plugins/import/imp_md3)
add_mimesh_library(g3d_plugin_nff SHARED libg3d-0.0.8/plugins/import/imp_nff)
add_mimesh_library(g3d_plugin_obj SHARED libg3d-0.0.8/plugins/import/imp_obj)
add_mimesh_library(g3d_plugin_osm SHARED libg3d-0.0.8/plugins/import/imp_osm)
add_mimesh_library(g3d_plugin_q3o SHARED libg3d-0.0.8/plugins/import/imp_q3o)
add_mimesh_library(g3d_plugin_r4 SHARED libg3d-0.0.8/plugins/import/imp_r4)
add_mimesh_library(g3d_plugin_rbh SHARED libg3d-0.0.8/plugins/import/imp_rbh)
add_mimesh_library(g3d_plugin_skp SHARED libg3d-0.0.8/plugins/import/imp_skp)
add_mimesh_library(g3d_plugin_stl SHARED libg3d-0.0.8/plugins/import/imp_stl)
add_mimesh_library(g3d_plugin_ta SHARED libg3d-0.0.8/plugins/import/imp_ta)
#add_mimesh_library(g3d_plugin_test SHARED libg3d-0.0.8/plugins/import/imp_test)
#add_mimesh_library(g3d_plugin_vrml SHARED libg3d-0.0.8/plugins/import/imp_vrml)
add_mimesh_library(g3d_plugin_vrml2 SHARED libg3d-0.0.8/plugins/import/imp_vrml2)


set(g3d_plugin_gdkpixbuf_link_LIBRARIES
    ${LIBGTK_LIBRARIES}
    ${LIBCAIRO_LIBRARIES}
    ${LIBPANGO_LIBRARIES}
    )
add_mimesh_library(g3d_plugin_gdkpixbuf SHARED libg3d-0.0.8/plugins/image img_gdkpixbuf.c)

set(g3d_plugin_jpeg_link_LIBRARIES
    ${JPEG_LIBRARIES}
    )
add_mimesh_library(g3d_plugin_jpeg SHARED libg3d-0.0.8/plugins/image img_jpeg.c)

add_mimesh_library(g3d_plugin_bmp SHARED libg3d-0.0.8/plugins/image img_bmp.c)
add_mimesh_library(g3d_plugin_dds SHARED libg3d-0.0.8/plugins/image img_dds.c)
add_mimesh_library(g3d_plugin_sgi SHARED libg3d-0.0.8/plugins/image img_sgi.c)

install(FILES libg3d-0.0.8/libg3d.magic DESTINATION lib/libg3d)