CMAKE_MINIMUM_REQUIRED (VERSION 2.8.11)

CMAKE_POLICY(SET CMP0020 NEW)
CMAKE_POLICY(SET CMP0043 NEW)

SET(PROJ_AUTHOR Tannin)
SET(PROJ_ARCH x86)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  SET(PROJ_ARCH x64)
endif()


SET(helper_SRCS
	privileges.cpp
	main.cpp
  )

SET(helper_HDRS
	privileges.h
  )

# Qt5
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_AUTOMOC ON)
FIND_PACKAGE(Qt5Core REQUIRED)

INCLUDE_DIRECTORIES(${Qt5Core_DIR}/../../../include)
INCLUDE_DIRECTORIES(${Qt5Core_DIR}/../../../include/QtCore)

# Boost
SET(Boost_USE_STATIC_LIBS        ON)
SET(Boost_USE_MULTITHREADED      ON)
SET(Boost_USE_STATIC_RUNTIME    OFF)
FIND_PACKAGE(Boost REQUIRED)

INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})

LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})

ADD_DEFINITIONS(-DUNICODE -D_UNICODE)
ADD_EXECUTABLE(helper ${helper_HDRS} ${helper_SRCS})
TARGET_LINK_LIBRARIES(helper ${Boost_LIBRARIES} Qt5::Core)
SET_TARGET_PROPERTIES(helper PROPERTIES COMPILE_FLAGS /GL)
SET_TARGET_PROPERTIES(helper PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/LTCG /INCREMENTAL:NO /LARGEADDRESSAWARE /OPT:REF /OPT:ICF")
SET_TARGET_PROPERTIES(helper PROPERTIES LINK_FLAGS "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\"")

###############
## Installation

INSTALL(TARGETS helper
        RUNTIME DESTINATION bin)
INSTALL(FILES $<TARGET_PDB_FILE:helper>
		DESTINATION pdb)
