From c084ce30f985a988506f3e99284d9ca78f4b0169 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Mon, 27 Jul 2020 04:38:51 +0200 Subject: [PATCH] CMake: build vpndrvinst --- src/CMakeLists.txt | 4 ++++ src/vpndrvinst/CMakeLists.txt | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/vpndrvinst/CMakeLists.txt diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4d78ef5f..fb71a372 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -155,6 +155,10 @@ if(WIN32) add_subdirectory(PenCore) add_dependencies(hamcore-archive-build PenCore) + # vpndrvinst + add_subdirectory(vpndrvinst) + add_dependencies(hamcore-archive-build vpndrvinst) + # vpnsmgr add_subdirectory(vpnsmgr) diff --git a/src/vpndrvinst/CMakeLists.txt b/src/vpndrvinst/CMakeLists.txt new file mode 100644 index 00000000..05f4c568 --- /dev/null +++ b/src/vpndrvinst/CMakeLists.txt @@ -0,0 +1,33 @@ +if(NOT WIN32) + message(FATAL_ERROR "VPN Driver Installer is available only for Windows.") +endif() + +set(COMPONENT_NAME "Driver Installer") +set(COMPONENT_INTERNAL_NAME "vpndrvinst") + +add_executable(vpndrvinst WIN32 vpndrvinst.c vpndrvinst.h) + +get_filename_component(COMPONENT_FILE_NAME vpndrvinst NAME) +set(COMPONENT_FILE_NAME "${COMPONENT_FILE_NAME}.exe") + +configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") +target_sources(vpndrvinst PRIVATE "vpndrvinst.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") + +# Fixes manifest authoring error c1010001 +set_target_properties(vpndrvinst PROPERTIES LINK_FLAGS "/MANIFESTUAC:level='requireAdministrator'") + +if(${COMPILER_ARCHITECTURE} STREQUAL "x64") + target_sources(vpndrvinst PRIVATE "${TOP_DIRECTORY}/src/BuildFiles/Manifests/x64_admin.manifest") +else() + target_sources(vpndrvinst PRIVATE "${TOP_DIRECTORY}/src/BuildFiles/Manifests/x86_admin.manifest") +endif() + +set_target_properties(vpndrvinst + PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY "${TOP_DIRECTORY}/src/bin/hamcore" + LIBRARY_OUTPUT_DIRECTORY "${TOP_DIRECTORY}/src/bin/hamcore" + RUNTIME_OUTPUT_DIRECTORY "${TOP_DIRECTORY}/src/bin/hamcore" + PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" +) + +target_link_libraries(vpndrvinst cedar mayaqua)