PROJECT(qucspowercombining CXX C) CMAKE_MINIMUM_REQUIRED(VERSION 3.10) cmake_policy(VERSION 3.10) SET(QUCS_NAME "qucs-s") # use top VERSION file file (STRINGS ${PROJECT_SOURCE_DIR}/../VERSION QUCS_VERSION) message(STATUS "Configuring ${PROJECT_NAME} (GUI): VERSION ${QUCS_VERSION}") set(PROJECT_VERSION "${QUCS_VERSION}") set(PROJECT_VENDOR "Qucs team. This program is licensed under the GNU GPL") set(PROJECT_COPYRIGHT_YEAR "2016") set(PROJECT_DOMAIN_FIRST "qucs") set(PROJECT_DOMAIN_SECOND "org") #SET(CMAKE_BUILD_TYPE Debug) add_compile_definitions(HAVE_CONFIG_H) SET(CMAKE_POSITION_INDEPENDENT_CODE ON) # configure the header config.h CONFIGURE_FILE ( "${PROJECT_SOURCE_DIR}/../config.h.cmake" "${PROJECT_BINARY_DIR}/config.h" ) INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}") find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) if(QT_VERSION_MAJOR EQUAL 6) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Widgets Svg SvgWidgets) include_directories( ${Qt${QT_VERSION_MAJOR}Core_INCLUDE_DIRS} ${Qt${QT_VERSION_MAJOR}Widgets_INCLUDE_DIRS} ${Qt${QT_VERSION_MAJOR}Svg_INCLUDE_DIRS} ${Qt${QT_VERSION_MAJOR}SvgWidgets_INCLUDE_DIRS} ) else() find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Widgets Svg) include_directories( ${Qt${QT_VERSION_MAJOR}Core_INCLUDE_DIRS} ${Qt${QT_VERSION_MAJOR}Widgets_INCLUDE_DIRS} ${Qt${QT_VERSION_MAJOR}Svg_INCLUDE_DIRS} ) endif() IF(QT_VERSION_MAJOR EQUAL 6) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) ELSE() set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) ENDIF() if (MSVC) add_compile_options(/Zc:__cplusplus /permissive- /MP /Zc:preprocessor) else() # additional warnings add_compile_options(-Wall -Wextra) endif() ADD_DEFINITIONS(${QT_DEFINITIONS}) SET(QUCS-POWCOMB_SRCS qucspowercombiningtool.cpp main.cpp ) SET(QUCS-POWCOMB_HDRS qucspowercombiningtool.h ) SET(QUCS-POWCOMB_MOC_HDRS qucspowercombiningtool.h ) SET(RESOURCES qucspowercombining.qrc) IF(QT_VERSION_MAJOR EQUAL 6) QT6_WRAP_CPP(QUCS-POWCOMB_MOC_SRCS ${QUCS-POWCOMB_MOC_HDRS}) QT6_ADD_RESOURCES(RESOURCES_SRCS ${RESOURCES}) ELSE() QT5_WRAP_CPP(QUCS-POWCOMB_MOC_SRCS ${QUCS-POWCOMB_MOC_HDRS}) QT5_ADD_RESOURCES(RESOURCES_SRCS ${RESOURCES}) ENDIF() IF(APPLE) # set information on Info.plist file SET(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME} ${PROJECT_VERSION}") SET(MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_NAME} ${PROJECT_VERSION}") SET(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME} ${PROJECT_VERSION}") SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}") SET(MACOSX_BUNDLE_COPYRIGHT "${PROJECT_COPYRIGHT_YEAR} ${PROJECT_VENDOR}") SET(MACOSX_BUNDLE_GUI_IDENTIFIER "${PROJECT_DOMAIN_SECOND}.${PROJECT_DOMAIN_FIRST}") SET(MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}") SET(MACOSX_BUNDLE_ICON_FILE qucspowercombining.icns) # set where in the bundle to put the icns file SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/../qucs/bitmaps/qucspowercombining.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) # include the icns file in the target SET(QUCS-POWCOMB_SRCS ${QUCS-POWCOMB_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/../qucs/bitmaps/qucspowercombining.icns) ENDIF(APPLE) ADD_EXECUTABLE(${QUCS_NAME}powercombining MACOSX_BUNDLE WIN32 ${QUCS-POWCOMB_SRCS} ${QUCS-POWCOMB_HDRS} ${QUCS-POWCOMB_MOC_SRCS} ${RESOURCES_SRCS} ) if(QT_VERSION_MAJOR EQUAL 6) TARGET_LINK_LIBRARIES(${QUCS_NAME}powercombining Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Svg Qt${QT_VERSION_MAJOR}::SvgWidgets) else() TARGET_LINK_LIBRARIES(${QUCS_NAME}powercombining Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Svg ) endif() SET_TARGET_PROPERTIES(${QUCS_NAME}powercombining PROPERTIES POSITION_INDEPENDENT_CODE TRUE) INSTALL(TARGETS ${QUCS_NAME}powercombining BUNDLE DESTINATION bin COMPONENT Runtime RUNTIME DESTINATION bin COMPONENT Runtime )