11# Binaries :
2- macro (create_binary bin_name filename add_widgets)
2+ add_custom_target (create_binaries)
3+
4+ macro (create_binary bin_name filename)
35 add_executable (${bin_name} ${filename} commandlinehelper.h)
46
57 set_target_properties (${bin_name} PROPERTIES AUTOMOC TRUE )
@@ -9,58 +11,60 @@ macro(create_binary bin_name filename add_widgets)
911 target_include_directories (${bin_name} PRIVATE ${QT_INCLUDES} )
1012 target_include_directories (${bin_name} PRIVATE ${GDAL_INCLUDE_DIR} )
1113 target_include_directories (${bin_name} PRIVATE SimpleRasters::SimpleRasters)
12- target_include_directories (${bin_name} PRIVATE viewshed_widgets)
1314
1415 target_link_libraries (${bin_name}
1516 ${QT_LIBS}
1617 bs_thread_pool
1718 library_viewshed
1819 ${GDAL_LIBRARY}
1920 SimpleRasters::SimpleRasters
20- viewshed_widgets
2121 )
22+
23+ add_dependencies (create_binaries ${bin_name} )
2224endmacro (create_binary)
2325
24- if (HAS_QT )
25- message ( STATUS "Has Qt so binaries can be build." )
26+ macro (create_gui_binary bin_name filename )
27+ create_binary( ${bin_name} ${filename} )
2628
27- add_library (viewshed_widgets SHARED
28- pointwidget.h pointwidget.cpp
29- doublevalidator.h doublevalidator.cpp
30- fileselectorwidget.h fileselectorwidget.cpp
31- viewshedcalculatorwindow.h viewshedcalculatorwindow.cpp)
29+ target_include_directories (${bin_name} PRIVATE viewshed_widgets)
30+ target_link_libraries (${bin_name} viewshed_widgets)
31+ endmacro (create_gui_binary)
3232
33- set_target_properties (viewshed_widgets PROPERTIES OUTPUT_NAME "viewshedwidgets" )
33+ if (HAS_QT)
34+ message (STATUS "Has Qt so binaries can be build." )
3435
35- set_target_properties (viewshed_widgets PROPERTIES VERSION ${PROJECT_VERSION} )
36+ create_binary(viewshed viewshed.cpp )
3637
37- target_include_directories (viewshed_widgets PUBLIC ${QT_INCLUDES} )
38- target_include_directories (viewshed_widgets PUBLIC SimpleRasters::SimpleRasters)
39- target_include_directories (viewshed_widgets PRIVATE ${GDAL_INCLUDE_DIR} )
38+ create_binary(inverseviewshed inverseviewshed.cpp)
4039
41- target_link_libraries (viewshed_widgets
42- ${QT_LIBS}
43- library_viewshed
44- ${GDAL_LIBRARY}
45- SimpleRasters::SimpleRasters
40+ add_dependencies (create_binaries
41+ viewshed
42+ inverseviewshed
4643 )
4744
48- create_binary(viewshed viewshed.cpp OFF )
45+ if (BUILD_GUI_APP)
46+ add_library (viewshed_widgets SHARED
47+ pointwidget.h pointwidget.cpp
48+ doublevalidator.h doublevalidator.cpp
49+ fileselectorwidget.h fileselectorwidget.cpp
50+ viewshedcalculatorwindow.h viewshedcalculatorwindow.cpp)
4951
50- create_binary(inverseviewshed inverseviewshed.cpp OFF )
52+ set_target_properties (viewshed_widgets PROPERTIES OUTPUT_NAME "viewshedwidgets" )
5153
52- create_binary(viewshedcalculator viewshedcalculator.cpp ON )
54+ set_target_properties (viewshed_widgets PROPERTIES VERSION ${PROJECT_VERSION} )
5355
54- create_binary(losextractor losextractor.cpp ON )
56+ target_include_directories (viewshed_widgets PUBLIC ${QT_INCLUDES} )
57+ target_include_directories (viewshed_widgets PUBLIC SimpleRasters::SimpleRasters)
58+ target_include_directories (viewshed_widgets PRIVATE ${GDAL_INCLUDE_DIR} )
5559
56- add_custom_target (create_binaries)
60+ target_link_libraries (viewshed_widgets
61+ ${QT_LIBS}
62+ library_viewshed
63+ ${GDAL_LIBRARY}
64+ SimpleRasters::SimpleRasters
65+ )
5766
58- add_dependencies (create_binaries viewshed)
59-
60- add_dependencies (create_binaries
61- viewshed
62- inverseviewshed
63- viewshedcalculator
64- losextractor
65- )
67+ create_gui_binary(viewshedcalculator viewshedcalculator.cpp)
68+ create_gui_binary(losextractor losextractor.cpp)
69+ endif ()
6670endif ()
0 commit comments