cmake_minimum_required(VERSION 2.8.0) project(bernstein) set(PROGNAME "bernstein") if (EXISTS ${THE_DIR}) set(THE_SRC_DIR ${THE_DIR}) endif (EXISTS ${THE_DIR}) if (NOT THE_SRC_DIR) file(TO_CMAKE_PATH "$ENV{THE_SRC_DIR}" THE_SRC_DIR) endif (NOT THE_SRC_DIR) if (NOT THE_BIN_DIR) file(TO_CMAKE_PATH "$ENV{THE_BIN_DIR}" THE_BIN_DIR) endif (NOT THE_BIN_DIR) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${THE_SRC_DIR}) find_package(THE REQUIRED) find_package(OpenGL REQUIRED) set(Boost_ADDITIONAL_VERSIONS "1.41" "1.41.0") set(Boost_USE_MULTITHREAD ON) find_package(Boost 1.35 COMPONENTS thread REQUIRED) find_package(Boost 1.35 COMPONENTS date_time REQUIRED) find_package(GLEW) if (GLEW_FOUND) else (GLEW_FOUND) message(FATAL_ERROR "Cannot build without GLEW. Please set GLEW_DIR.") endif (GLEW_FOUND) find_package(Cg) if (Cg_FOUND) add_definitions(-DUSE_CG) include_directories(AFTER ${Cg_INCLUDE_DIR}) endif (Cg_FOUND) find_package(Qt4) if (QT4_FOUND) else (QT4_FOUND) message(FATAL_ERROR "Cannot build without Qt4. Please set QT4_DIR.") endif (QT4_FOUND) set(QT_USE_OPENGL TRUE) set(QT_USE_QTMAIN TRUE) include(${QT_USE_FILE}) add_definitions(-DUSE_THE_TERMINATORS) if (WIN32) add_definitions(-D_USE_MATH_DEFINES -DNOMINMAX) endif (WIN32) include_directories(AFTER . ${CMAKE_CURRENT_BINARY_DIR} ${THE_SRC_DIR} ${Boost_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${GLEW_INCLUDE_DIR} ${QT_INCLUDE_DIR} ${QT_QTOPENGL_INCLUDE_DIR} ) find_library(QT4_PLUGINS_QGIF qgif ${QT_PLUGINS_DIR}/imageformats DOC "Qt image IO plugin for GIF") find_library(QT4_PLUGINS_QTIFF qtiff ${QT_PLUGINS_DIR}/imageformats DOC "Qt image IO plugin for TIFF") find_library(QT4_PLUGINS_QICO qico ${QT_PLUGINS_DIR}/imageformats DOC "Qt image IO plugin for ICO") find_library(QT4_PLUGINS_QJPEG qjpeg ${QT_PLUGINS_DIR}/imageformats DOC "Qt image IO plugin for JPEG") find_library(QT4_PLUGINS_QMNG qmng ${QT_PLUGINS_DIR}/imageformats DOC "Qt image IO plugin for MNG") find_library(JPEG_LIBRARY jpeg DOC "jpeg library") find_library(TIFF_LIBRARY tiff DOC "tiff library") find_library(PNG_LIBRARY png DOC "png library") find_library(MNG_LIBRARY mng DOC "mng library") set(project_moc_hxx the_main_window.hxx the_curve_proc_ui.hxx PreferencesDialog.h ) qt4_wrap_cpp(project_moc_cxx ${project_moc_hxx}) set(project_uis the_main_window.ui curve_tool.ui PreferencesDialog.ui AboutDialog.ui ) qt4_wrap_ui(project_uis_hxx ${project_uis}) qt4_add_resources(project_qrc_cxx ${PROGNAME}.qrc) set(project_sources the_main.cxx the_main_window.cxx PreferencesDialog.cpp the_curve_proc.cxx the_curve_proc_ui.cxx ${project_moc_cxx} ${project_uis_hxx} ${project_qrc_cxx} ) # Set some Win32 Specific Settings if (WIN32) set(GUI_TYPE WIN32) set(project_sources ${project_sources} ${PROGNAME}.rc) endif (WIN32) # Set some Apple MacOS Specific settings if (APPLE) set(GUI_TYPE MACOSX_BUNDLE) set(project_sources ${project_sources} Info.plist ${PROGNAME}.icns) endif (APPLE) add_executable(${PROGNAME} ${GUI_TYPE} ${project_sources} ) set(TARGET_LIBS ${THE_UI_QT_LIBRARY} ${THE_UI_LIBRARY} ${THE_CORE_LIBRARY} ${GLEW_LIBRARIES} ${QT_QTOPENGL_LIBRARY} ${QT_LIBRARIES} ${OPENGL_LIBRARIES} ${Boost_LIBRARIES} ) if (Cg_LIBRARIES) set(TARGET_LIBS ${TARGET_LIBS} ${Cg_LIBRARIES}) endif (Cg_LIBRARIES) if (TIFF_LIBRARY) set(TARGET_LIBS ${TARGET_LIBS} ${TIFF_LIBRARY}) endif (TIFF_LIBRARY) if (JPEG_LIBRARY) set(TARGET_LIBS ${TARGET_LIBS} ${JPEG_LIBRARY}) endif (JPEG_LIBRARY) if (PNG_LIBRARY) set(TARGET_LIBS ${TARGET_LIBS} ${PNG_LIBRARY}) endif (PNG_LIBRARY) if (MNG_LIBRARY) set(TARGET_LIBS ${TARGET_LIBS} ${MNG_LIBRARY}) endif (MNG_LIBRARY) #message("QT_CONFG: "${QT_CONFIG}) if (QT_CONFIG MATCHES "static" OR QT4_PLUGINS_QTIFF MATCHES ".a$") add_definitions(-DQT_LIBS_ARE_STATIC) if (QT4_PLUGINS_QGIF) set(TARGET_LIBS ${TARGET_LIBS} ${QT4_PLUGINS_QGIF}) endif (QT4_PLUGINS_QGIF) if (QT4_PLUGINS_QTIFF) set(TARGET_LIBS ${TARGET_LIBS} ${QT4_PLUGINS_QTIFF}) endif (QT4_PLUGINS_QTIFF) if (QT4_PLUGINS_QICO) set(TARGET_LIBS ${TARGET_LIBS} ${QT4_PLUGINS_QICO}) endif (QT4_PLUGINS_QICO) if (QT4_PLUGINS_QJPEG) set(TARGET_LIBS ${TARGET_LIBS} ${QT4_PLUGINS_QJPEG}) endif (QT4_PLUGINS_QJPEG) if (QT4_PLUGINS_QMNG) set(TARGET_LIBS ${TARGET_LIBS} ${QT4_PLUGINS_QMNG}) endif (QT4_PLUGINS_QMNG) endif (QT_CONFIG MATCHES "static" OR QT4_PLUGINS_QTIFF MATCHES ".a$") target_link_libraries(${PROGNAME} ${TARGET_LIBS} ) if (APPLE) set_target_properties(${PROGNAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/${PROGNAME}.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) add_custom_command(TARGET ${PROGNAME} POST_BUILD COMMAND ${THE_SRC_DIR}/DeployOSX.sh ARGS ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${PROGNAME}.app COMMENT "pull in external dependencies" ) endif (APPLE) install(TARGETS ${PROGNAME} DESTINATION bin)