From 13a22c26d41841cf96d66427052a7b2a03b2da87 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= <marcandre.moreau@gmail.com>
Date: Sun, 12 Aug 2012 15:41:07 -0400
Subject: [PATCH] third-party: create third-party integration scripts

---
 .gitignore                 |  3 ---
 CMakeLists.txt             |  6 +++---
 third-party/.gitignore     |  2 ++
 third-party/CMakeLists.txt | 31 +++++++++++++++++++++++++++++++
 4 files changed, 36 insertions(+), 6 deletions(-)
 create mode 100644 third-party/.gitignore
 create mode 100644 third-party/CMakeLists.txt

diff --git a/.gitignore b/.gitignore
index 337770698..73c0bf88c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,9 +19,6 @@ CPackSourceConfig.cmake
 docs/api
 client/X11/xfreerdp.1
 
-# Extensions
-extensions/**
-
 # Mac OS X
 .DS_Store
 
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eb4c410ee..2da96dac8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -204,9 +204,9 @@ if(NOT MSVC)
 	add_subdirectory(keymaps)
 endif()
 
-option(WITH_EXTENSIONS "Build extensions" ON)
-if(WITH_EXTENSIONS)
-	add_subdirectory(extensions)
+option(WITH_THIRD_PARTY "Build third-party components" ON)
+if(WITH_THIRD_PARTY)
+	add_subdirectory(third-party)
 endif()
 
 # Source package
diff --git a/third-party/.gitignore b/third-party/.gitignore
new file mode 100644
index 000000000..453af308c
--- /dev/null
+++ b/third-party/.gitignore
@@ -0,0 +1,2 @@
+**/**
+
diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt
new file mode 100644
index 000000000..5a27d8337
--- /dev/null
+++ b/third-party/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Third-Party Extensions
+#
+# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+
+# The third-party directory is meant for third-party components to be built
+# as part of the main FreeRDP build system, making separate maintenance easier.
+# Subdirectories of the third-party directory are ignored by git, but are
+# automatically included by CMake when the -DWITH_THIRD_PARTY=on option is used.
+
+file(GLOB all_valid_subdirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/CMakeLists.txt")
+
+foreach(dir ${all_valid_subdirs})
+	message(STATUS "path = ${dir}")
+	if(${dir} MATCHES "^([^/]*)//CMakeLists.txt")
+		string(REGEX REPLACE "^([^/]*)//CMakeLists.txt" "\\1" dir_trimmed ${dir})
+		add_subdirectory(${dir_trimmed})
+	endif()
+endforeach(dir)
+