ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/CMakeLists.txt
Revision: 1.17
Committed: Mon Jan 8 16:51:32 2018 UTC (6 years, 4 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R2, rad5R3
Changes since 1.16: +114 -40 lines
Log Message:
Update to CMake build system from Rob G. and Alex S., adding test cases

File Contents

# User Rev Content
1 greg 1.1 set(VERSION_FILE "${radiance_BINARY_DIR}/src/rt/Version.c")
2 greg 1.3 create_version_file("${VERSION_FILE}")
3 greg 1.1
4 greg 1.15 add_library(radiance
5 greg 1.17 "${VERSION_FILE}"
6     ../common/paths.c
7     ../common/platform.h
8     ../common/random.h
9     ambcomp.c
10     ambient.c
11     ambio.c
12     aniso.c
13     ashikhmin.c
14     data.c
15     dielectric.c
16     fprism.c
17     freeobjmem.c
18     func.c
19     glass.c
20     initotypes.c
21     m_alias.c
22     m_brdf.c
23     m_bsdf.c
24     m_clip.c
25     m_direct.c
26     m_mirror.c
27     m_mist.c
28     mx_data.c
29     mx_func.c
30     noise3.c
31     normal.c
32     o_cone.c
33     o_face.c
34     o_instance.c
35     o_mesh.c
36     p_data.c
37     p_func.c
38     pmap.c
39     pmapamb.c
40     pmapbias.c
41     pmapcontrib.c
42     pmapdata.c
43     pmapdiag.c
44     pmapio.c
45     pmapmat.c
46     pmapopt.c
47     pmapparm.c
48     pmaprand.c
49     pmapray.c
50     pmapsrc.c
51     pmaptype.c
52     pmcontrib2.c
53     pmutil.c
54     preload.c
55     raytrace.c
56     renderopts.c
57     source.c
58     sphere.c
59     srcobstr.c
60     srcsamp.c
61     srcsupp.c
62     t_data.c
63     t_func.c
64     text.c
65     virtuals.c
66     )
67 greg 1.1
68     if(WIN32)
69     set(rayp_SOURCES raypwin.c)
70     else()
71     set(rayp_SOURCES raypcalls.c)
72     endif()
73    
74     add_library(raycalls raycalls.c ${rayp_SOURCES} rayfifo.c)
75    
76 greg 1.17 add_executable(rtrace rtmain.c rtrace.c duphead.c persist.c)
77 greg 1.1 target_link_libraries(rtrace raycalls radiance rtrad)
78    
79     add_executable(rpict rpmain.c rpict.c srcdraw.c duphead.c persist.c)
80     target_link_libraries(rpict radiance rtrad)
81 greg 1.9
82     add_executable(lookamb lookamb.c ambio.c)
83     target_link_libraries(lookamb rtrad)
84    
85     add_executable(rcontrib rcmain.c rcontrib.c rc2.c rc3.c)
86     target_link_libraries(rcontrib radiance rtrad)
87    
88 greg 1.15 add_executable(mkpmap mkpmap.c)
89     target_link_libraries(mkpmap radiance rtrad)
90     add_executable(pmapdump pmapdump.c pmaptype.c pmapparm.c)
91     target_link_libraries(pmapdump raycalls radiance rtrad)
92 greg 1.10
93 greg 1.17 set(targets_to_install
94     lookamb
95     mkpmap
96     pmapdump
97     radiance
98     raycalls
99     rcontrib
100     rpict
101     rtrace
102     )
103 greg 1.9
104 greg 1.1 if(X11_FOUND)
105     set(X11_SOURCES x11.c x11twind.c)
106 greg 1.17 add_definitions(-DHAS_X11)
107 greg 1.1 endif()
108 greg 1.11 if(Qt5Widgets_DIR)
109     include_directories(${Qt5Widgets_INCLUDE_DIRS})
110 greg 1.17 add_definitions(-DHAS_QT)
111 greg 1.1 endif()
112 greg 1.13 if(NOT BUILD_HEADLESS)
113 greg 1.17 if(X11_FOUND OR Qt5Widgets_DIR)
114 greg 1.13 add_executable(rvu
115 greg 1.17 colortab.c
116     devcomm.c
117     devtable.c
118     editline.c
119     rv2.c
120     rv3.c
121     rview.c
122     rvmain.c
123     ${X11_SOURCES}
124     )
125 greg 1.13 target_link_libraries(rvu raycalls radiance rtrad ${X11_LIBRARIES})
126     list(APPEND targets_to_install rvu)
127    
128     # only link to rvu-qt-lib if qt is found
129     if(Qt5Widgets_DIR)
130     target_link_libraries(rvu qtrvu)
131     endif()
132 greg 1.9 endif()
133 greg 1.1 endif()
134    
135 greg 1.17 #add_test(rtrace_version "${EXECUTABLE_OUTPUT_PATH}/rtrace" -version)
136     #set_tests_properties(rtrace_version PROPERTIES
137     # PASS_REGULAR_EXPRESSION "RADIANCE"
138     #)
139 greg 1.1
140 greg 1.9 install(TARGETS ${targets_to_install}
141 greg 1.17 RUNTIME DESTINATION "bin"
142     LIBRARY DESTINATION "bin"
143     ARCHIVE DESTINATION "bin"
144     )
145     file(COPY rayinit.cal
146     DESTINATION "${CMAKE_BINARY_DIR}/lib"
147     )
148 greg 1.5
149 greg 1.12 #install qt.conf & Qt plugins loaded by rvu at runtime. Ignore if we are building as headless
150     if(NOT BUILD_HEADLESS)
151     get_target_property(GIF_PLUGIN Qt5::QGifPlugin LOCATION)
152     get_target_property(ICO_PLUGIN Qt5::QICOPlugin LOCATION)
153     get_target_property(JPEG_PLUGIN Qt5::QJpegPlugin LOCATION)
154     get_target_property(TIFF_PLUGIN Qt5::QTiffPlugin LOCATION)
155 greg 1.17 install(PROGRAMS "${GIF_PLUGIN}" "${ICO_PLUGIN}" "${JPEG_PLUGIN}" "${TIFF_PLUGIN}"
156     DESTINATION "bin/plugins/imageformats"
157     )
158     install(FILES "${CMAKE_SOURCE_DIR}/InstallRules/qt.conf"
159     DESTINATION "bin"
160     )
161    
162     if(WIN32)
163     get_target_property(QPA_PLUGIN Qt5::QWindowsIntegrationPlugin LOCATION)
164     elseif(APPLE)
165     get_target_property(QPA_PLUGIN Qt5::QCocoaIntegrationPlugin LOCATION)
166     elseif(UNIX)
167     get_target_property(QPA_PLUGIN Qt5::QXcbIntegrationPlugin LOCATION)
168     endif()
169 greg 1.12
170 greg 1.17 install(PROGRAMS "${QPA_PLUGIN}"
171     DESTINATION "bin/plugins/platforms"
172     )
173 greg 1.11 endif()