mirror of
https://github.com/arcan1s/moldyn.git
synced 2025-07-15 06:45:50 +00:00
122 lines
3.2 KiB
CMake
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)
|