cmake_minimum_required(VERSION 2.8) project(jasmine) if(CMAKE_BUILD_TYPE STREQUAL Debug) message(STATUS "Debugging mode is being enabled. This is not recommended for normal use.") add_definitions(-DDEBUG) set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wall) else(CMAKE_BUILD_TYPE STREQUAL Debug) message(STATUS "Normal mode") endif(CMAKE_BUILD_TYPE STREQUAL Debug) find_package(Qt4 4.5 REQUIRED QtCore QtGui QtNetwork) find_package(OpenMP) add_definitions(${QT_DEFINITIONS}) include_directories(${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDE_DIR}) include(${QT_USE_FILE}) #No mocs set(main main.cxx settings.cxx) set(validator validator/ipaddressvalidator.cxx ) set(ported_rmd6 ported_rmd6/basis.cxx ported_rmd6/context.cxx ported_rmd6/rmd6.cxx ported_rmd6/rmd6_context.cxx ) set(structures structures/header.cxx settings.cxx ) #Mocs set(network_h network/tcpnetwork.h ) set(ui_h ui/about.h ui/editdelegate.h ui/jasmine_mainwindow.h ui/memberlist.h ui/settingdialog.h ui/rtfeditor.h ) #set(file_h file/qtlockedfile.h) #Ui files set(ui ui/uifiles/about.ui ui/uifiles/jasmine_main.ui ui/uifiles/settings.ui ) #The implementation files set(network_src network/tcpnetwork.cxx network/server.cxx network/client.cxx ) set(ui_src ui/about.cxx ui/editdelegate.cxx ui/jasmine_mainwindow.cxx ui/memberlist.cxx ui/settingdialog.cxx ui/rtfeditor.cxx ) set(file_impl file/qtlockedfile.cxx) set(file_win32 file/qtlockedfile_win.cxx) set(file_unix file/qtlockedfile_unix.cxx) #resource files set(res res/main.res ) qt4_wrap_cpp(network_moc ${network_h}) #qt4_wrap_cpp(file_moc ${file_h}) qt4_wrap_cpp(ui_moc ${ui_h}) qt4_wrap_ui(ui_moc ${ui}) qt4_add_resources(res_moc ${res}) if(WIN32) if(OPENMP_FOUND) add_executable(jasmine WIN32 ${main} ${ui_moc} ${ui_src} ${network_moc} ${network_src} ${structures} ${res_moc} ${validator} ${ported_rmd6} ${file_win32} ${file_impl}) set_property(TARGET jasmine PROPERTY COMPILE_FLAGS ${OpenMP_CXX_FLAGS} APPEND) target_link_libraries(jasmine gomp ${QT_LIBRARIES}) else(OPENMP_FOUND) add_executable(jasmine WIN32 ${main} ${ui_moc} ${ui_src} ${network_moc} ${network_src} ${structures} ${res_moc} ${validator} ${ported_rmd6} ${file_win32} ${file_impl}) target_link_libraries(jasmine ${QT_LIBRARIES}) endif(OPENMP_FOUND) else(WIN32) add_library(qripemd160 SHARED ${ported_rmd6}) add_library(validator SHARED ${validator}) add_library(resource SHARED ${res_moc}) add_library(structures SHARED ${structures}) add_library(network SHARED ${network_moc} ${network_src}) add_library(ui SHARED ${ui_moc} ${ui_src}) add_library(file SHARED ${file_unix} ${file_impl}) add_executable(jasmine ${main}) target_link_libraries(qripemd160 ${QT_LIBRARIES}) target_link_libraries(validator ${QT_LIBRARIES}) target_link_libraries(resource ${QT_LIBRARIES}) target_link_libraries(structures ${QT_LIBRARIES}) target_link_libraries(file ${QT_LIBRARIES}) target_link_libraries(structures qripemd160 ${QT_LIBRARIES}) target_link_libraries(network structures validator file ${QT_LIBRARIES}) target_link_libraries(ui resource network file ${QT_LIBRARIES}) target_link_libraries(jasmine ui ${QT_LIBRARIES}) if(OPENMP_FOUND) set_property(TARGET ui PROPERTY COMPILE_FLAGS ${OpenMP_CXX_FLAGS} APPEND) #set_property(TARGET network PROPERTY COMPLE_FLAGS ${OpenMP_CXX_FLAGS} APPEND) target_link_libraries(ui gomp) endif(OPENMP_FOUND) endif(WIN32)