From 369a8850c4bf1183fba3d2c80b700cb5c4d03809 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Mon, 20 Jul 2020 18:31:41 +0200 Subject: [PATCH] CMake: don't hardcode build directories Our CMake project used to forcefully create and use two different build directories: "build" and "tmp". This commit changes the behavior so that only the build directory CMake is ran in is used. The "configure" script now runs CMake in "build" by default, instead of "tmp". --- CMakeLists.txt | 2 +- configure | 8 ++++---- configure.cmd | 6 +++--- src/hamcorebuilder/CMakeLists.txt | 14 -------------- src/vpnbridge/CMakeLists.txt | 4 ++-- src/vpnclient/CMakeLists.txt | 4 ++-- src/vpncmd/CMakeLists.txt | 4 ++-- src/vpncmgr/CMakeLists.txt | 4 ++-- src/vpnserver/CMakeLists.txt | 4 ++-- src/vpnsmgr/CMakeLists.txt | 4 ++-- src/vpntest/CMakeLists.txt | 4 ++-- 11 files changed, 22 insertions(+), 36 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 32e9dec2..88cbd1ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ project("SoftEther VPN" ) set(TOP_DIRECTORY ${CMAKE_SOURCE_DIR}) -set(BUILD_DIRECTORY ${TOP_DIRECTORY}/build) +set(BUILD_DIRECTORY ${CMAKE_BINARY_DIR}) # We define a dedicated variable because CMAKE_BUILD_TYPE can have different # configurations than "Debug" and "Release", such as "RelWithDebInfo". diff --git a/configure b/configure index 77e7317f..21aedd71 100755 --- a/configure +++ b/configure @@ -17,8 +17,8 @@ echo echo 'Welcome to the corner-cutting configure script !' echo -if [ ! -d "tmp" ]; then - mkdir tmp +if [ ! -d "build" ]; then + mkdir build fi if [ ! -z ${CMAKE_FLAGS+x} ]; then @@ -50,9 +50,9 @@ fi echo "" -(cd tmp && cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ${CMAKE_FLAGS} .. || exit 1) +(cd build && cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ${CMAKE_FLAGS} .. || exit 1) echo "" -echo "The Makefile is generated. Run 'make -C tmp' to build SoftEther VPN." +echo "The Makefile is generated. Run 'make -C build' to build SoftEther VPN." diff --git a/configure.cmd b/configure.cmd index 815a5f9b..13e3143c 100644 --- a/configure.cmd +++ b/configure.cmd @@ -13,11 +13,11 @@ echo. echo Welcome to the corner-cutting configure script ! echo. -if not exist "tmp" ( - mkdir tmp +if not exist "build" ( + mkdir build ) -cd tmp +cd build cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "NMake Makefiles" .. diff --git a/src/hamcorebuilder/CMakeLists.txt b/src/hamcorebuilder/CMakeLists.txt index 3e8d7b3d..41be69ad 100644 --- a/src/hamcorebuilder/CMakeLists.txt +++ b/src/hamcorebuilder/CMakeLists.txt @@ -1,17 +1,3 @@ add_executable(hamcorebuilder hamcorebuilder.c) -set_target_properties(hamcorebuilder - PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY "${TOP_DIRECTORY}/tmp" - LIBRARY_OUTPUT_DIRECTORY "${TOP_DIRECTORY}/tmp" - RUNTIME_OUTPUT_DIRECTORY "${TOP_DIRECTORY}/tmp" -) - -if(WIN32) - set_target_properties(hamcorebuilder - PROPERTIES - PDB_OUTPUT_DIRECTORY "${TOP_DIRECTORY}/tmp" - ) -endif() - target_link_libraries(hamcorebuilder cedar mayaqua) diff --git a/src/vpnbridge/CMakeLists.txt b/src/vpnbridge/CMakeLists.txt index f0129f13..1e213661 100644 --- a/src/vpnbridge/CMakeLists.txt +++ b/src/vpnbridge/CMakeLists.txt @@ -19,8 +19,8 @@ if(WIN32) get_filename_component(COMPONENT_FILE_NAME vpnbridge NAME) set(COMPONENT_FILE_NAME "${COMPONENT_FILE_NAME}.exe") - configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_BINARY_DIR}/VerScript/vpnbridge.rc") - target_sources(vpnbridge PRIVATE vpnbridge.rc "${CMAKE_BINARY_DIR}/VerScript/vpnbridge.rc") + configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") + target_sources(vpnbridge PRIVATE "vpnbridge.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") endif() target_link_libraries(vpnbridge cedar mayaqua) diff --git a/src/vpnclient/CMakeLists.txt b/src/vpnclient/CMakeLists.txt index 71c5c351..a1addf0f 100644 --- a/src/vpnclient/CMakeLists.txt +++ b/src/vpnclient/CMakeLists.txt @@ -19,8 +19,8 @@ if(WIN32) get_filename_component(COMPONENT_FILE_NAME vpnclient NAME) set(COMPONENT_FILE_NAME "${COMPONENT_FILE_NAME}.exe") - configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_BINARY_DIR}/VerScript/vpnclient.rc") - target_sources(vpnclient PRIVATE vpnclient.rc "${CMAKE_BINARY_DIR}/VerScript/vpnclient.rc") + configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") + target_sources(vpnclient PRIVATE "vpnclient.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") endif() target_link_libraries(vpnclient cedar mayaqua) diff --git a/src/vpncmd/CMakeLists.txt b/src/vpncmd/CMakeLists.txt index 3d257961..565903f7 100644 --- a/src/vpncmd/CMakeLists.txt +++ b/src/vpncmd/CMakeLists.txt @@ -19,8 +19,8 @@ if(WIN32) get_filename_component(COMPONENT_FILE_NAME vpncmd NAME) set(COMPONENT_FILE_NAME "${COMPONENT_FILE_NAME}.exe") - configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_BINARY_DIR}/VerScript/vpncmd.rc") - target_sources(vpncmd PRIVATE vpncmd.rc "${CMAKE_BINARY_DIR}/VerScript/vpncmd.rc") + configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") + target_sources(vpncmd PRIVATE "vpncmd.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") endif() target_link_libraries(vpncmd cedar mayaqua) diff --git a/src/vpncmgr/CMakeLists.txt b/src/vpncmgr/CMakeLists.txt index 9cfa73ae..7a9af191 100644 --- a/src/vpncmgr/CMakeLists.txt +++ b/src/vpncmgr/CMakeLists.txt @@ -10,8 +10,8 @@ add_executable(vpncmgr WIN32 vpncmgr.c vpncmgr.rc) get_filename_component(COMPONENT_FILE_NAME vpncmgr NAME) set(COMPONENT_FILE_NAME "${COMPONENT_FILE_NAME}.exe") -configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_BINARY_DIR}/VerScript/vpncmgr.rc") -target_sources(vpncmgr PRIVATE "${CMAKE_BINARY_DIR}/VerScript/vpncmgr.rc") +configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") +target_sources(vpncmgr PRIVATE "vpncmgr.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") if(${COMPILER_ARCHITECTURE} STREQUAL "x64") target_sources(vpncmgr PRIVATE "${TOP_DIRECTORY}/src/BuildFiles/Manifests/x64_user.manifest") diff --git a/src/vpnserver/CMakeLists.txt b/src/vpnserver/CMakeLists.txt index e4caaed6..87c2cd5b 100644 --- a/src/vpnserver/CMakeLists.txt +++ b/src/vpnserver/CMakeLists.txt @@ -19,8 +19,8 @@ if(WIN32) get_filename_component(COMPONENT_FILE_NAME vpnserver NAME) set(COMPONENT_FILE_NAME "${COMPONENT_FILE_NAME}.exe") - configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_BINARY_DIR}/VerScript/vpnserver.rc") - target_sources(vpnserver PRIVATE vpnserver.rc "${CMAKE_BINARY_DIR}/VerScript/vpnserver.rc") + configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") + target_sources(vpnserver PRIVATE "vpnserver.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") endif() target_link_libraries(vpnserver cedar mayaqua) diff --git a/src/vpnsmgr/CMakeLists.txt b/src/vpnsmgr/CMakeLists.txt index 1b8df278..9c1054fa 100644 --- a/src/vpnsmgr/CMakeLists.txt +++ b/src/vpnsmgr/CMakeLists.txt @@ -10,8 +10,8 @@ add_executable(vpnsmgr WIN32 vpnsmgr.c vpnsmgr.rc) get_filename_component(COMPONENT_FILE_NAME vpnsmgr NAME) set(COMPONENT_FILE_NAME "${COMPONENT_FILE_NAME}.exe") -configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_BINARY_DIR}/VerScript/vpnsmgr.rc") -target_sources(vpnsmgr PRIVATE "${CMAKE_BINARY_DIR}/VerScript/vpnsmgr.rc") +configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") +target_sources(vpnsmgr PRIVATE "vpnsmgr.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") if(${COMPILER_ARCHITECTURE} STREQUAL "x64") target_sources(vpnsmgr PRIVATE "${TOP_DIRECTORY}/src/BuildFiles/Manifests/x64_user.manifest") diff --git a/src/vpntest/CMakeLists.txt b/src/vpntest/CMakeLists.txt index 8aeaa97f..9d03a6c6 100644 --- a/src/vpntest/CMakeLists.txt +++ b/src/vpntest/CMakeLists.txt @@ -19,8 +19,8 @@ if(WIN32) get_filename_component(COMPONENT_FILE_NAME vpntest NAME) set(COMPONENT_FILE_NAME "${COMPONENT_FILE_NAME}.exe") - configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_BINARY_DIR}/VerScript/vpntest.rc") - target_sources(vpntest PRIVATE vpntest.rc "${CMAKE_BINARY_DIR}/VerScript/vpntest.rc") + configure_file("${TOP_DIRECTORY}/src/BuildFiles/VerScript/ver.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") + target_sources(vpntest PRIVATE "vpntest.rc" "${CMAKE_CURRENT_BINARY_DIR}/ver.rc") if(${COMPILER_ARCHITECTURE} STREQUAL "x64") target_sources(vpntest PRIVATE "${TOP_DIRECTORY}/src/BuildFiles/Manifests/x64_user.manifest")