Files
moldyn/mathmech/build/CMakeLists.txt
2013-08-23 22:08:37 +04:00

122 lines
3.2 KiB
CMake

cmake_minimum_required (VERSION 2.6)
set (PROJECT mathmech)
# additional options
OPTION (WITH_DEBUG_MODE "Build with debug mode" OFF)
OPTION (ADD_INCLUDE "Add include files" OFF)
# executable path
set (EXECUTABLE_OUTPUT_PATH ${${PROJECT}_BINARY_DIR})
# verbose
set (CMAKE_VERBOSE_MAKEFILE ON)
# flags
if ( WITH_DEBUG_MODE )
add_definitions ( -DDEBUG_MODE=1 )
endif ()
if ( CMAKE_COMPILER_IS_GNUCXX )
set (ADD_CXX_FLAGS "-Wall")
set (CMAKE_CXX_FLAGS "-O0 ${ADD_CXX_FLAGS}")
set (CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set (CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
elseif ( MSVC )
set (ADD_CXX_FLAGS "/W4")
set (CMAKE_CXX_FLAGS "${ADD_CXX_FLAGS}")
else ()
message ("Unknown compiler")
endif ()
# set directories
set (${PROJECT}_BINARY_DIR ../bin)
set (${PROJECT}_RESOURCE_DIR ../resources)
set (${PROJECT}_TRANSLATION_DIR ${${PROJECT}_RESOURCE_DIR}/translations)
# set files
set (HEADERS
../aboutwindow.h
../aglallwindow.h
../agglwindow.h
../atomtypeswindow.h
../clear_items.h
../errorwindow.h
../mainwindow.h
../settingswindow.h
../start_events.h
../statgengraphwindow.h
../update_fields.h)
set (SOURCES
../aboutwindow.cpp
../aglallwindow.cpp
../agglwindow.cpp
../atomtypeswindow.cpp
../clear_items.cpp
../errorwindow.cpp
../main.cpp
../mainwindow.cpp
../settingswindow.cpp
../start_events.cpp
../statgengraphwindow.cpp
../update_fields.cpp)
set (FORMS
../aboutwindow.ui
../agglwindow.ui
../aglallwindow.ui
../atomtypeswindow.ui
../errorwindow.ui
../mainwindow.ui
../settingswindow.ui
../statgengraphwindow.ui)
# set library
if (CMAKE_COMPILER_IS_GNUCXX)
set (LIBRARIES m)
else ()
set (LIBRARIES)
endif()
set (LANGUAGES
eng
rus)
set (RESOURCES
${${PROJECT}_RESOURCE_DIR}/resources.qrc)
# compile
project (${PROJECT})
include_directories (../
${CMAKE_CURRENT_BINARY_DIR})
find_package (Qt4 REQUIRED)
include (${QT_USE_FILE})
qt4_add_resources (QRC_SOURCES ${RESOURCES})
qt4_wrap_cpp (MOC_SOURCES ${HEADERS})
qt4_wrap_ui (UI_HEADERS ${FORMS})
foreach (LANGUAGE ${LANGUAGES})
set (TS ${${PROJECT}_TRANSLATION_DIR}/${LANGUAGE}.ts)
set (QM ${${PROJECT}_TRANSLATION_DIR}/${LANGUAGE}.qm)
set (TRANSLATIONS ${TRANSLATIONS} ${TS})
set (TRANSLATIONS_BINARY ${TRANSLATIONS_BINARY} ${QM})
add_custom_command (
OUTPUT ${QM}
COMMAND ${QT_LRELEASE_EXECUTABLE} ${TS}
MAIN_DEPENDENCY ${TS})
endforeach()
add_custom_target (
translations
COMMAND ${QT_LUPDATE_EXECUTABLE} ${HEADERS} ${SOURCES} -ts ${TRANSLATIONS})
add_custom_command (
TARGET translations
COMMAND ${QT_LRELEASE_EXECUTABLE} ${TRANSLATIONS})
source_group ("Header Files" FILES ${HEADERS})
source_group ("Source Files" FILES ${SOURCES})
source_group ("Generated Files" FILES ${MOC_SOURCES})
source_group ("Resource Files" FILES ${QRC_SOURCES})
add_executable (${PROJECT} WIN32 ${UI_HEADERS} ${HEADERS} ${SOURCES} ${MOC_SOURCES} ${QRC_SOURCES} ${TRANSLATIONS})
target_link_libraries (${PROJECT} ${LIBRARIES} ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY})
# install properties
INSTALL (TARGETS ${PROJECT} DESTINATION bin)