Index: /trunk/FACT++/CMakeLists.txt
===================================================================
--- /trunk/FACT++/CMakeLists.txt	(revision 19882)
+++ /trunk/FACT++/CMakeLists.txt	(revision 19883)
@@ -166,4 +166,10 @@
 FIND_PACKAGE(Nova     REQUIRED)
 
+FIND_PACKAGE(Highlight)
+IF (HIGHLIGHT_FOUND)
+   ADD_DEFINITIONS(-DHAVE_HIGHLIGHT)
+ENDIF()
+
+
 #INCLUDE_DIRECTORIES("/usr/include/mysql")
 # dbus-1 dbus-glib-1
@@ -306,4 +312,6 @@
    SET(ROOTVER ${ROOT_VERSION} CACHE INTERNAL "Internal variable to check for consistency of root version")
 
+   ADD_DEFINITIONS(-DHAVE_ROOT)
+
 ENDIF(NOT NO_ROOT AND NOT VIEWER_ONLY)
 
@@ -361,5 +369,5 @@
 	"${CMAKE_CXX_FLAGS} \
          -D_REENTRANT -D__LINUX__ \
-         -DHAVE_ZLIB -DHAVE_ROOT -DHAVE_V8 -DHAVE_SQL -DHAVE_NOVA -DHAVE_FITS -DPRESET_OBSERVATORY=k${OBSERVATORY} \
+         -DHAVE_ZLIB -DHAVE_V8 -DHAVE_SQL -DHAVE_NOVA -DHAVE_FITS -DPRESET_OBSERVATORY=k${OBSERVATORY} \
          -DMARSVER=\\\"${VERSION}\\\" \
          -DPACKAGE_VERSION=\\\"${VERSION}\\\" \
@@ -559,6 +567,6 @@
 
 MACRO(MANPAGE program description)
-# https://samthursfield.wordpress.com/2015/11/21/cmake-dependencies-between-targets-and-files-and-custom-commands/
-IF (HELP2MAN_EXECUTABLE AND ROFF2HTML_EXECUTABLE AND ROFF2PDF_EXECUTABLE AND GROFF_EXECUTABLE)
+   # https://samthursfield.wordpress.com/2015/11/21/cmake-dependencies-between-targets-and-files-and-custom-commands/
+   IF (HELP2MAN_EXECUTABLE AND ROFF2HTML_EXECUTABLE AND ROFF2PDF_EXECUTABLE AND GROFF_EXECUTABLE)
         ADD_CUSTOM_COMMAND(
         	OUTPUT
@@ -587,7 +595,25 @@
 
 	INSTALL(FILES ${PROJECT_BINARY_DIR}/man1/${program}.1 DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
-ENDIF()
+   ENDIF()
 ENDMACRO()
 
+
+# ********************************************************
+# ********************* Resources ************************
+# ********************************************************
+
+FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/res)
+
+FUNCTION(ADD_RESOURCES)
+    FOREACH(resource ${ARGV})
+        STRING(MAKE_C_IDENTIFIER ${resource} identifier)
+        ADD_CUSTOM_COMMAND(
+            OUTPUT  "${PROJECT_BINARY_DIR}/res/${identifier}.o"
+            COMMAND ${CMAKE_LINKER} --relocatable --format binary --output "${PROJECT_BINARY_DIR}/res/${identifier}.o" ${resource}
+            DEPENDS ${resource}
+            WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+        )
+    ENDFOREACH()
+ENDFUNCTION()
 
 
@@ -663,4 +689,9 @@
    MANPAGE(calcsourcemc "")
 ENDIF()
+
+ADD_EXECUTABLE(spectrum src/spectrum.cc src/WindowLog.cc res/spectrum_data_sql.o res/spectrum_simulation_sql.o res/spectrum_analysis_sql.o)
+TARGET_LINK_LIBRARIES(spectrum Threads::Threads ${CURSES_LIBRARIES} ${HIGHLIGHT_LIBRARY} ${HELP++LIBS} ${ROOT_LIBRARIES})
+ADD_RESOURCES(spectrum/analysis.sql spectrum/data.sql spectrum/simulation.sql)
+MANPAGE(spectrum "")
 
 ADD_EXECUTABLE(getevent src/getevent.cc)
