Initial commit
This commit is contained in:
219
AgIsoVirtualTerminal/CMakeLists.txt
Normal file
219
AgIsoVirtualTerminal/CMakeLists.txt
Normal file
@@ -0,0 +1,219 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(
|
||||
"AgISOVirtualTerminal"
|
||||
LANGUAGES CXX
|
||||
VERSION 1.3.0)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
||||
|
||||
set(JUCE_WEB_BROWSER OFF)
|
||||
set(BUILD_TESTING OFF)
|
||||
|
||||
if(WIN32)
|
||||
set(CAN_DRIVER "WindowsPCANBasic")
|
||||
list(APPEND CAN_DRIVER "TouCAN")
|
||||
|
||||
if(NOT (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND MINGW))
|
||||
list(APPEND CAN_DRIVER "WindowsInnoMakerUSB2CAN")
|
||||
else()
|
||||
message(
|
||||
STATUS
|
||||
"InnoMaker hardware will not be supported in this build because you are using mingw"
|
||||
)
|
||||
endif()
|
||||
list(APPEND CAN_DRIVER "SYS_TEC")
|
||||
elseif(APPLE)
|
||||
set(CAN_DRIVER "MacCANPCAN")
|
||||
else()
|
||||
set(CAN_DRIVER "SocketCAN")
|
||||
endif()
|
||||
|
||||
find_package(JUCE MODULE)
|
||||
find_package(CAN_Stack MODULE)
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
juce_add_gui_app(
|
||||
AgISOVirtualTerminal
|
||||
ICON_BIG
|
||||
doc/smallLogo.png
|
||||
# image file to use as an icon ICON_SMALL ...
|
||||
COMPANY_NAME
|
||||
"Open-Agriculture"
|
||||
COMPANY_COPYRIGHT
|
||||
"Open-Agriculture"
|
||||
COMPANY_WEBSITE
|
||||
"https://github.com/Open-Agriculture"
|
||||
PRODUCT_NAME
|
||||
"AgISOVirtualTerminal"
|
||||
NEEDS_CURL
|
||||
FALSE
|
||||
NEEDS_WEB_BROWSER
|
||||
FALSE
|
||||
DESCRIPTION
|
||||
"An ISO11783-6 Server")
|
||||
|
||||
set_target_properties(AgISOVirtualTerminal PROPERTIES CXX_STANDARD 17)
|
||||
|
||||
target_compile_definitions(AgISOVirtualTerminal PRIVATE JUCE_USE_CURL=0
|
||||
JUCE_WEB_BROWSER=0)
|
||||
|
||||
juce_generate_juce_header(AgISOVirtualTerminal)
|
||||
|
||||
target_sources(
|
||||
AgISOVirtualTerminal
|
||||
PRIVATE src/Main.cpp
|
||||
"src/ServerMainComponent.cpp"
|
||||
"src/DataMaskComponent.cpp"
|
||||
"src/WorkingSetSelectorComponent.cpp"
|
||||
"src/PictureGraphicComponent.cpp"
|
||||
"src/WorkingSetComponent.cpp"
|
||||
"src/AlarmMaskComponent.cpp"
|
||||
"src/DataMaskRenderAreaComponent.cpp"
|
||||
"src/JuceManagedWorkingSetCache.cpp"
|
||||
"src/OutputRectangleComponent.cpp"
|
||||
"src/OutputStringComponent.cpp"
|
||||
"src/ButtonComponent.cpp"
|
||||
"src/ContainerComponent.cpp"
|
||||
"src/ObjectPointerComponent.cpp"
|
||||
"src/OutputNumberComponent.cpp"
|
||||
"src/SoftkeyMaskRenderArea.cpp"
|
||||
"src/KeyComponent.cpp"
|
||||
"src/SoftKeyMaskComponent.cpp"
|
||||
"src/OutputMeterComponent.cpp"
|
||||
"src/InputBooleanComponent.cpp"
|
||||
"src/LoggerComponent.cpp"
|
||||
"src/InputNumberComponent.cpp"
|
||||
"src/OutputEllipseComponent.cpp"
|
||||
"src/OutputLineComponent.cpp"
|
||||
"src/OutputLinearBarGraphComponent.cpp"
|
||||
"src/OutputPolygonComponent.cpp"
|
||||
"src/InputStringComponent.cpp"
|
||||
"src/AlarmMaskAudio.cpp"
|
||||
"src/AppImages.cpp"
|
||||
"src/ASCIILogFile.cpp"
|
||||
"src/ConfigureHardwareWindow.cpp"
|
||||
"src/ConfigureHardwareComponent.cpp"
|
||||
"src/StringEncodingConversions.cpp"
|
||||
"src/InputListComponent.cpp"
|
||||
"src/ShortcutsWindow.cpp")
|
||||
|
||||
target_include_directories(AgISOVirtualTerminal
|
||||
PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include)
|
||||
|
||||
target_link_libraries(
|
||||
AgISOVirtualTerminal
|
||||
PRIVATE juce::juce_gui_extra juce::juce_audio_basics juce::juce_audio_utils
|
||||
isobus::Isobus isobus::HardwareIntegration isobus::Utility
|
||||
PUBLIC juce::juce_recommended_config_flags juce::juce_recommended_lto_flags)
|
||||
|
||||
if(WIN32)
|
||||
add_custom_command(
|
||||
TARGET AgISOVirtualTerminal
|
||||
POST_BUILD
|
||||
COMMENT "Copying PCANBasic.dll to the build directory"
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}" -E copy_if_different
|
||||
${CMAKE_CURRENT_LIST_DIR}/lib/PCANBasic.dll
|
||||
"$<TARGET_FILE_DIR:AgISOVirtualTerminal>"
|
||||
VERBATIM)
|
||||
|
||||
add_custom_command(
|
||||
TARGET AgISOVirtualTerminal
|
||||
POST_BUILD
|
||||
COMMENT "Copying Usbcan64.dll to the build directory"
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}" -E copy_if_different
|
||||
${CMAKE_CURRENT_LIST_DIR}/lib/Usbcan64.dll
|
||||
"$<TARGET_FILE_DIR:AgISOVirtualTerminal>"
|
||||
VERBATIM)
|
||||
|
||||
add_custom_command(
|
||||
TARGET AgISOVirtualTerminal
|
||||
POST_BUILD
|
||||
COMMENT "Copying canal.dll to the build directory"
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}" -E copy_if_different
|
||||
${CMAKE_CURRENT_LIST_DIR}/lib/canal.dll
|
||||
"$<TARGET_FILE_DIR:AgISOVirtualTerminal>"
|
||||
VERBATIM)
|
||||
|
||||
add_custom_command(
|
||||
TARGET AgISOVirtualTerminal
|
||||
POST_BUILD
|
||||
COMMENT "Copying InnoMakerUsb2CanLib.dll to the build directory"
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}" -E copy_if_different
|
||||
${CMAKE_CURRENT_LIST_DIR}/lib/InnoMakerUsb2CanLib.dll
|
||||
"$<TARGET_FILE_DIR:AgISOVirtualTerminal>"
|
||||
VERBATIM)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
install(
|
||||
TARGETS AgISOVirtualTerminal
|
||||
RUNTIME DESTINATION bin
|
||||
BUNDLE DESTINATION . COMPONENT applications)
|
||||
else()
|
||||
install(TARGETS AgISOVirtualTerminal RUNTIME DESTINATION bin
|
||||
COMPONENT applications)
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_LIST_DIR}/lib/Usbcan64.dll
|
||||
DESTINATION bin
|
||||
COMPONENT applications)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_LIST_DIR}/lib/PCANBasic.dll
|
||||
DESTINATION bin
|
||||
COMPONENT applications)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_LIST_DIR}/lib/canal.dll
|
||||
DESTINATION bin
|
||||
COMPONENT applications)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_LIST_DIR}/lib/InnoMakerUsb2CanLib.dll
|
||||
DESTINATION bin
|
||||
COMPONENT applications)
|
||||
endif()
|
||||
|
||||
set(CPACK_PACKAGE_NAME "AgISOVirtualTerminal")
|
||||
set(CPACK_PACKAGE_VENDOR "Open-Agriculture")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "An ISO11783-6 Server")
|
||||
set(CPACK_PACKAGE_VERSION "1.3.0")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "1")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "3")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "0")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "AgISOVirtualTerminal")
|
||||
set(CPACK_COMPONENTS_ALL applications)
|
||||
set(CPACK_COMPONENT_APPLICATIONS_DISPLAY_NAME "AgISOVirtualTerminal")
|
||||
set(CPACK_COMPONENT_APPLICATIONS_DESCRIPTION
|
||||
"A free and open source ISO11783-6 Server")
|
||||
set(CPACK_PACKAGE_CONTACT "delgrossoengineering@protonmail.com")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_LIST_DIR}/LICENSE")
|
||||
set(CPACK_PACKAGE_EXECUTABLES "AgISOVirtualTerminal" "AgISOVirtualTerminal")
|
||||
set(CPACK_ALL_INSTALL_TYPES Full)
|
||||
set(CPACK_COMPONENT_LIBRARIES_INSTALL_TYPES Full)
|
||||
set(CPACK_COMPONENT_APPLICATIONS_INSTALL_TYPES Full)
|
||||
set(CPACK_NSIS_INSTALLED_ICON_NAME ${CMAKE_CURRENT_LIST_DIR}/doc/smallLogo.ico)
|
||||
set(CPACK_NSIS_CONTACT ${CPACK_PACKAGE_CONTACT})
|
||||
set(CPACK_NSIS_MUI_ICON ${CPACK_NSIS_INSTALLED_ICON_NAME})
|
||||
set(CPACK_NSIS_MUI_UNICON ${CPACK_NSIS_INSTALLED_ICON_NAME})
|
||||
set(CPACK_NSIS_DISPLAY_NAME "AgISOVirtualTerminal")
|
||||
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT applications)
|
||||
include(InstallRequiredSystemLibraries)
|
||||
|
||||
if(APPLE)
|
||||
set(CPACK_GENERATOR DragNDrop ${CPACK_GENERATOR})
|
||||
set(CPACK_GENERATOR "DragNDrop")
|
||||
set(CPACK_DMG_FORMAT "UDBZ")
|
||||
set(CPACK_DMG_VOLUME_NAME "${PROJECT_NAME}")
|
||||
set(CPACK_SYSTEM_NAME "OSX")
|
||||
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}")
|
||||
set(CPACK_PACKAGE_ICON ${CPACK_NSIS_INSTALLED_ICON_NAME})
|
||||
endif()
|
||||
|
||||
# Must be after the last CPACK macros
|
||||
include(CPack)
|
||||
Reference in New Issue
Block a user