2020-09-12 10:55:46 -07:00
|
|
|
project(glass)
|
|
|
|
|
|
|
|
|
|
include(CompileWarnings)
|
2020-12-23 13:05:44 -08:00
|
|
|
include(GenResources)
|
2020-09-12 10:55:46 -07:00
|
|
|
include(LinkMacOSGUI)
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# libglass
|
|
|
|
|
#
|
|
|
|
|
file(GLOB_RECURSE libglass_src src/lib/native/cpp/*.cpp)
|
|
|
|
|
|
2024-07-22 11:03:19 -04:00
|
|
|
add_library(libglass STATIC ${libglass_src})
|
|
|
|
|
set_target_properties(libglass PROPERTIES DEBUG_POSTFIX "d")
|
|
|
|
|
# Library name can't be glass on Windows or else it will overwrite the Glass app PDB file
|
|
|
|
|
if(NOT MSVC)
|
|
|
|
|
set_target_properties(libglass PROPERTIES OUTPUT_NAME "glass")
|
|
|
|
|
endif()
|
2020-09-12 10:55:46 -07:00
|
|
|
|
|
|
|
|
set_property(TARGET libglass PROPERTY FOLDER "libraries")
|
|
|
|
|
|
|
|
|
|
wpilib_target_warnings(libglass)
|
2025-11-07 19:55:39 -05:00
|
|
|
target_link_libraries(libglass PUBLIC wpigui wpimath wpiutil fields)
|
2020-09-12 10:55:46 -07:00
|
|
|
|
2023-11-30 19:52:21 -05:00
|
|
|
target_include_directories(
|
|
|
|
|
libglass
|
|
|
|
|
PUBLIC
|
|
|
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/lib/native/include>
|
|
|
|
|
$<INSTALL_INTERFACE:${include_dest}/glass>
|
|
|
|
|
)
|
2020-09-12 10:55:46 -07:00
|
|
|
|
2023-09-18 01:17:32 +02:00
|
|
|
install(TARGETS libglass EXPORT libglass)
|
2024-04-10 22:04:22 -07:00
|
|
|
export(TARGETS libglass FILE libglass.cmake NAMESPACE libglass::)
|
2020-09-12 10:55:46 -07:00
|
|
|
install(DIRECTORY src/lib/native/include/ DESTINATION "${include_dest}/glass")
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# libglassnt
|
|
|
|
|
#
|
|
|
|
|
file(GLOB_RECURSE libglassnt_src src/libnt/native/cpp/*.cpp)
|
|
|
|
|
|
2024-07-22 11:03:19 -04:00
|
|
|
add_library(libglassnt STATIC ${libglassnt_src})
|
|
|
|
|
set_target_properties(libglassnt PROPERTIES DEBUG_POSTFIX "d")
|
|
|
|
|
if(NOT MSVC)
|
|
|
|
|
set_target_properties(libglassnt PROPERTIES OUTPUT_NAME "glassnt")
|
|
|
|
|
endif()
|
2020-09-12 10:55:46 -07:00
|
|
|
|
|
|
|
|
set_property(TARGET libglassnt PROPERTY FOLDER "libraries")
|
|
|
|
|
|
|
|
|
|
wpilib_target_warnings(libglassnt)
|
|
|
|
|
target_link_libraries(libglassnt PUBLIC ntcore libglass)
|
|
|
|
|
|
2023-11-30 19:52:21 -05:00
|
|
|
target_include_directories(
|
|
|
|
|
libglassnt
|
|
|
|
|
PUBLIC
|
|
|
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/libnt/native/include>
|
|
|
|
|
$<INSTALL_INTERFACE:${include_dest}/glass>
|
|
|
|
|
)
|
2020-09-12 10:55:46 -07:00
|
|
|
|
2023-09-18 01:17:32 +02:00
|
|
|
install(TARGETS libglassnt EXPORT libglassnt)
|
2024-04-10 22:04:22 -07:00
|
|
|
export(TARGETS libglassnt FILE libglassnt.cmake NAMESPACE libglassnt::)
|
2020-09-12 10:55:46 -07:00
|
|
|
install(DIRECTORY src/libnt/native/include/ DESTINATION "${include_dest}/glass")
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# glass application
|
|
|
|
|
#
|
|
|
|
|
|
2021-01-01 18:59:00 -05:00
|
|
|
configure_file(src/app/generate/WPILibVersion.cpp.in WPILibVersion.cpp)
|
2025-11-07 20:00:37 -05:00
|
|
|
generate_resources(src/app/native/resources generated/app/cpp GLASS wpi::glass glass_resources_src)
|
2020-12-23 13:05:44 -08:00
|
|
|
|
2021-01-01 18:59:00 -05:00
|
|
|
file(GLOB glass_src src/app/native/cpp/*.cpp ${CMAKE_CURRENT_BINARY_DIR}/WPILibVersion.cpp)
|
2020-09-12 10:55:46 -07:00
|
|
|
|
2023-11-30 19:52:21 -05:00
|
|
|
if(WIN32)
|
2020-12-23 13:05:44 -08:00
|
|
|
set(glass_rc src/app/native/win/glass.rc)
|
|
|
|
|
elseif(APPLE)
|
|
|
|
|
set(MACOSX_BUNDLE_ICON_FILE glass.icns)
|
|
|
|
|
set(APP_ICON_MACOSX src/app/native/mac/glass.icns)
|
|
|
|
|
set_source_files_properties(${APP_ICON_MACOSX} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
add_executable(glass ${glass_src} ${glass_resources_src} ${glass_rc} ${APP_ICON_MACOSX})
|
2020-12-07 22:32:15 -08:00
|
|
|
wpilib_link_macos_gui(glass)
|
2023-09-22 18:39:35 -04:00
|
|
|
wpilib_target_warnings(glass)
|
2020-12-07 22:32:15 -08:00
|
|
|
target_link_libraries(glass libglassnt libglass)
|
2020-12-23 13:05:44 -08:00
|
|
|
|
2023-11-30 19:52:21 -05:00
|
|
|
if(WIN32)
|
2020-12-07 22:32:15 -08:00
|
|
|
set_target_properties(glass PROPERTIES WIN32_EXECUTABLE YES)
|
2020-12-23 13:05:44 -08:00
|
|
|
elseif(APPLE)
|
|
|
|
|
set_target_properties(glass PROPERTIES MACOSX_BUNDLE YES OUTPUT_NAME "Glass")
|
2020-09-12 10:55:46 -07:00
|
|
|
endif()
|