2020-05-21 17:11:45 +03:00
cmake_minimum_required ( VERSION 3.0 )
2020-07-13 14:59:57 +03:00
project ( admc VERSION 0.1.0 )
2020-05-21 17:11:45 +03:00
set ( CMAKE_BUILD_TYPE Debug )
set ( CMAKE_CXX_STANDARD 11 )
set ( CMAKE_CXX_STANDARD_REQUIRED ON )
set ( CMAKE_CXX_EXTENSIONS OFF )
set ( CMAKE_C_STANDARD 99 )
2020-07-21 13:48:47 +03:00
set ( CMAKE_CXX_FLAGS "-Wall -Wshadow -Werror=switch" )
2020-05-26 09:23:04 +03:00
2020-05-21 17:11:45 +03:00
set ( CMAKE_AUTOMOC ON )
set ( CMAKE_AUTORCC ON )
# Suppress warnings on FindDoxygen.cmake
cmake_policy ( SET CMP0054 NEW )
2020-06-04 10:21:45 +03:00
if ( SYSTEM_NAME STREQUAL "FreeBSD" )
set ( Iconv_IS_BUILT_IN FALSE )
endif ( )
2020-05-21 17:11:45 +03:00
set ( CMAKE_MODULE_PATH
2020-05-27 13:26:08 +03:00
$ { C M A K E _ M O D U L E _ P A T H }
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / c m a k e / M o d u l e s
2020-05-21 17:11:45 +03:00
)
2020-07-17 15:54:53 +03:00
find_package ( Qt5 COMPONENTS Core Widgets LinguistTools REQUIRED ) # GUI
2020-05-21 17:11:45 +03:00
find_package ( Doxygen ) # Code documentation
# Definitions for configuration file
2020-07-13 14:59:57 +03:00
set ( ADMC_APPLICATION_NAME "ADMC" )
set ( ADMC_APPLICATION_DISPLAY_NAME "ADMC" )
set ( ADMC_ORGANIZATION "BaseALT" )
set ( ADMC_ORGANIZATION_DOMAIN "basealt.ru" )
2020-05-21 17:11:45 +03:00
configure_file ( "config.h.in" "config.h" )
2020-06-03 18:45:21 +03:00
add_subdirectory ( adldap )
2020-06-01 19:43:06 +03:00
add_subdirectory ( gpgui )
2020-07-17 15:54:53 +03:00
# add_subdirectory(translations)
2020-06-01 19:43:06 +03:00
2020-07-13 14:59:57 +03:00
set ( ADMC_HEADER_DIRS
2020-06-01 17:18:26 +03:00
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R }
2020-05-27 13:26:08 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c
2020-06-03 18:45:21 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / a d l d a p / i n c l u d e
2020-05-21 17:11:45 +03:00
)
2020-07-13 14:59:57 +03:00
set ( ADMC_SOURCES
2020-05-27 13:26:08 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / m a i n . c p p
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / a d _ i n t e r f a c e . c p p
2020-06-02 15:55:03 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / d e t a i l s _ w i d g e t . c p p
2020-06-25 12:41:42 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / a t t r i b u t e s _ w i d g e t . c p p
2020-05-27 14:29:29 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / c o n t a i n e r s _ w i d g e t . c p p
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / c o n t e n t s _ w i d g e t . c p p
2020-05-27 13:23:35 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / m a i n _ w i n d o w . c p p
2020-06-16 12:31:34 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / s t a t u s . c p p
2020-06-02 15:07:45 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / m e m b e r s _ w i d g e t . c p p
2020-07-15 14:41:45 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / o b j e c t _ m o d e l . c p p
2020-06-08 13:26:43 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / s e t t i n g s . c p p
2020-06-22 17:07:03 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / m o v e _ d i a l o g . c p p
2020-07-15 14:41:45 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / o b j e c t _ c o n t e x t _ m e n u . c p p
2020-06-19 15:37:00 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / c o n f i r m a t i o n _ d i a l o g . c p p
2020-06-24 17:15:46 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / a d v a n c e d _ v i e w _ p r o x y . c p p
2020-06-24 15:55:07 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / d n _ c o l u m n _ p r o x y . c p p
2020-06-24 16:53:46 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / u t i l s . c p p
2020-06-30 16:13:31 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / l o g i n _ d i a l o g . c p p
2020-07-06 15:08:25 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / p a s s w o r d _ d i a l o g . c p p
2020-07-22 13:00:05 +03:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / s r c / m e n u b a r . c p p
2020-05-21 17:11:45 +03:00
)
2020-07-17 15:54:53 +03:00
set ( TS_DIR ${ CMAKE_CURRENT_SOURCE_DIR } /translations )
set ( TS_FILES ${ TS_DIR } /ru.ts )
# `make translations` to generate translation sources (.ts)
# NOTE: put this in a custom target so that translations aren't rebuilt on every source change
add_custom_target ( translations
D E P E N D S $ { T S _ F I L E S }
C O M M A N D $ { Q t 5 _ L U P D A T E _ E X E C U T A B L E } - r e c u r s i v e $ { C M A K E _ S O U R C E _ D I R } - t s $ { T S _ F I L E S }
)
# Generate translation binaries (.qm) from sources (.ts)
set_source_files_properties ( ${ TS_FILES } PROPERTIES OUTPUT_LOCATION ${ TS_DIR } )
qt5_add_translation ( QM_FILES ${ TS_FILES } )
2020-05-21 17:11:45 +03:00
add_definitions ( ${ QT5_DEFINITIONS } )
2020-07-13 14:59:57 +03:00
add_executable ( admc
$ { A D M C _ S O U R C E S }
2020-07-17 15:54:53 +03:00
$ { T S _ D I R } / t r a n s l a t i o n s . q r c
2020-05-21 17:11:45 +03:00
)
2020-07-13 14:59:57 +03:00
doxygen_add_docs ( admc_doc
$ { A D M C _ H E A D E R _ D I R S }
2020-05-27 13:26:08 +03:00
C O M M E N T
" G r o u p P o l i c y E d i t o r G U I d o c u m e n t a t i o n "
2020-05-21 17:11:45 +03:00
)
2020-07-13 14:59:57 +03:00
target_link_libraries ( admc
2020-05-27 13:26:08 +03:00
Q t 5 : : C o r e
Q t 5 : : W i d g e t s
2020-06-04 10:19:50 +03:00
a d l d a p + +
2020-05-21 17:11:45 +03:00
)
2020-07-13 14:59:57 +03:00
target_include_directories ( admc
2020-05-27 13:26:08 +03:00
P U B L I C
2020-07-13 14:59:57 +03:00
$ { A D M C _ H E A D E R _ D I R S }
2020-05-21 17:11:45 +03:00
)
2020-07-13 14:59:57 +03:00
install ( TARGETS admc )
2020-05-21 17:11:45 +03:00