From 7f25a7cebfa21db3180588dcca5b7bd4a388cd0c Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Thu, 21 Dec 2023 17:24:43 +0100 Subject: [PATCH] [cmake] provide default project version each subproject inherits the project version of the top level project --- CMakeLists.txt | 3 +++ .../freeRDPCore/src/main/cpp/CMakeLists.txt | 11 ++++++++++- client/Mac/CMakeLists.txt | 10 +++++++++- client/Mac/cli/CMakeLists.txt | 11 ++++++++++- client/SDL/CMakeLists.txt | 11 ++++++++++- client/Sample/CMakeLists.txt | 11 ++++++++++- client/X11/CMakeLists.txt | 11 ++++++++++- client/iOS/CMakeLists.txt | 13 ++++++++++++- server/proxy/modules/bitmap-filter/CMakeLists.txt | 15 +++++++++------ server/proxy/modules/capture/CMakeLists.txt | 11 ++++++++++- server/proxy/modules/demo/CMakeLists.txt | 11 ++++++++++- .../proxy/modules/dyn-channel-dump/CMakeLists.txt | 11 ++++++++++- 12 files changed, 113 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ce2e1d0f..f90e0cf78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -157,6 +157,9 @@ endif() message(STATUS "Git Revision ${GIT_REVISION}") +# Make the detected version available as default version for all subprojects +set(FREERDP_DEFAULT_PROJECT_VERSION ${FREERDP_VERSION} CACHE STRING INTERNAL) + set(FREERDP_MAJOR_DIR "freerdp${FREERDP_VERSION_MAJOR}") set(FREERDP_INCLUDE_DIR "include/${FREERDP_MAJOR_DIR}/") diff --git a/client/Android/Studio/freeRDPCore/src/main/cpp/CMakeLists.txt b/client/Android/Studio/freeRDPCore/src/main/cpp/CMakeLists.txt index bc89b13f4..b51532c03 100644 --- a/client/Android/Studio/freeRDPCore/src/main/cpp/CMakeLists.txt +++ b/client/Android/Studio/freeRDPCore/src/main/cpp/CMakeLists.txt @@ -19,7 +19,16 @@ cmake_minimum_required(VERSION 3.13) -project("freerdp-android") +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") +endif() + +project("freerdp-android" + LANGUAGES C + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") set(MODULE_NAME "freerdp-android") set(MODULE_PREFIX "FREERDP_CLIENT_ANDROID") diff --git a/client/Mac/CMakeLists.txt b/client/Mac/CMakeLists.txt index cc178f153..b8171fbad 100644 --- a/client/Mac/CMakeLists.txt +++ b/client/Mac/CMakeLists.txt @@ -1,6 +1,14 @@ +cmake_minimum_required(VERSION 3.13) -project(MacFreeRDP-library) +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") +endif() +project(MacFreeRDP-library + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") cmake_policy(SET CMP0026 OLD) cmake_policy(SET CMP0045 OLD) diff --git a/client/Mac/cli/CMakeLists.txt b/client/Mac/cli/CMakeLists.txt index c175070bc..13a169645 100644 --- a/client/Mac/cli/CMakeLists.txt +++ b/client/Mac/cli/CMakeLists.txt @@ -1,5 +1,14 @@ +cmake_minimum_required(VERSION 3.13) -project(MacFreeRDP) +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") +endif() + +project(MacFreeRDP + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/) include(PreventInSourceBuilds) diff --git a/client/SDL/CMakeLists.txt b/client/SDL/CMakeLists.txt index 2237f9e62..3485f3364 100644 --- a/client/SDL/CMakeLists.txt +++ b/client/SDL/CMakeLists.txt @@ -17,7 +17,16 @@ cmake_minimum_required(VERSION 3.13) -project(sdl-freerdp CXX) +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") +endif() + +project(sdl-freerdp + LANGUAGES CXX + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/client/Sample/CMakeLists.txt b/client/Sample/CMakeLists.txt index 10d8dc448..601feee3b 100644 --- a/client/Sample/CMakeLists.txt +++ b/client/Sample/CMakeLists.txt @@ -16,7 +16,16 @@ # limitations under the License. cmake_minimum_required(VERSION 3.13) -project(sfreerdp LANGUAGES C) +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") +endif() + +project(sfreerdp + LANGUAGES C + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) diff --git a/client/X11/CMakeLists.txt b/client/X11/CMakeLists.txt index 329d5c4f4..33b3367cc 100644 --- a/client/X11/CMakeLists.txt +++ b/client/X11/CMakeLists.txt @@ -17,7 +17,16 @@ # limitations under the License. cmake_minimum_required(VERSION 3.13) -project(xfreerdp LANGUAGES C) +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") +endif() + +project(xfreerdp + LANGUAGES C + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) diff --git a/client/iOS/CMakeLists.txt b/client/iOS/CMakeLists.txt index 9185b2619..6ff69bfc6 100644 --- a/client/iOS/CMakeLists.txt +++ b/client/iOS/CMakeLists.txt @@ -14,7 +14,18 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -project(iFreeRDP) + +cmake_minimum_required(VERSION 3.13) + +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") +endif() + +project(iFreeRDP + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" CACHE STRING "project default" FORCE) diff --git a/server/proxy/modules/bitmap-filter/CMakeLists.txt b/server/proxy/modules/bitmap-filter/CMakeLists.txt index 10015b1f0..c4dca7811 100644 --- a/server/proxy/modules/bitmap-filter/CMakeLists.txt +++ b/server/proxy/modules/bitmap-filter/CMakeLists.txt @@ -21,14 +21,17 @@ cmake_minimum_required(VERSION 3.13) -project(proxy-bitmap-filter-plugin VERSION 1.0.0 LANGUAGES CXX) - -include(CheckIPOSupported) -check_ipo_supported(RESULT supported OUTPUT error) -if (supported) - set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") endif() +project(proxy-bitmap-filter-plugin + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} + LANGUAGES CXX +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") + set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/server/proxy/modules/capture/CMakeLists.txt b/server/proxy/modules/capture/CMakeLists.txt index a470f6916..60edcd7f1 100644 --- a/server/proxy/modules/capture/CMakeLists.txt +++ b/server/proxy/modules/capture/CMakeLists.txt @@ -21,7 +21,16 @@ cmake_minimum_required(VERSION 3.13) -project(proxy-capture-plugin VERSION 1.0.0 LANGUAGES C) +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") +endif() + +project(proxy-capture-plugin + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} + LANGUAGES C +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) diff --git a/server/proxy/modules/demo/CMakeLists.txt b/server/proxy/modules/demo/CMakeLists.txt index c633395fa..5351aadef 100644 --- a/server/proxy/modules/demo/CMakeLists.txt +++ b/server/proxy/modules/demo/CMakeLists.txt @@ -21,7 +21,16 @@ cmake_minimum_required(VERSION 3.13) -project(proxy-demo-plugin VERSION 1.0.0 LANGUAGES CXX) +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") +endif() + +project(proxy-demo-plugin + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} + LANGUAGES CXX +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") include(CheckIPOSupported) check_ipo_supported(RESULT supported OUTPUT error) diff --git a/server/proxy/modules/dyn-channel-dump/CMakeLists.txt b/server/proxy/modules/dyn-channel-dump/CMakeLists.txt index 7e23969ee..5f5167775 100644 --- a/server/proxy/modules/dyn-channel-dump/CMakeLists.txt +++ b/server/proxy/modules/dyn-channel-dump/CMakeLists.txt @@ -20,7 +20,16 @@ cmake_minimum_required(VERSION 3.13) -project(proxy-dyn-channel-dump-plugin VERSION 1.0.0 LANGUAGES CXX) +if (NOT FREERDP_DEFAULT_PROJECT_VERSION) + set(FREERDP_DEFAULT_PROJECT_VERSION "1.0.0.0") +endif() + +project(proxy-dyn-channel-dump-plugin + VERSION ${FREERDP_DEFAULT_PROJECT_VERSION} + LANGUAGES CXX +) + +message("project ${PROJECT_NAME} is using version ${PROJECT_VERSION}") include(CheckIPOSupported) check_ipo_supported(RESULT supported OUTPUT error)