[win32] cmake: move generation of xbmc-config.cmake into xbmc dependency
authormontellese <montellese@xbmc.org>
Tue, 22 Jul 2014 12:04:31 +0000 (14:04 +0200)
committermontellese <montellese@xbmc.org>
Wed, 30 Jul 2014 09:16:01 +0000 (11:16 +0200)
project/cmake/addons/CMakeLists.txt
project/cmake/addons/depends/common/xbmc/CMakeLists.txt [deleted file]
project/cmake/addons/depends/common/xbmc/noinstall.txt [deleted file]
project/cmake/addons/depends/common/xbmc/xbmc.txt [deleted file]
project/cmake/addons/depends/windows/cmake/xbmc/CMakeLists.txt [new file with mode: 0644]
project/cmake/addons/depends/windows/cmake/xbmc/noinstall.txt [new file with mode: 0644]
project/cmake/addons/depends/windows/cmake/xbmc/xbmc.txt [new file with mode: 0644]
tools/buildsteps/win32/make-addons.bat

index a8c708d..018e16c 100644 (file)
@@ -18,18 +18,20 @@ else()
 endif()
 get_filename_component(XBMCROOT "${XBMCROOT}" ABSOLUTE)
 
-if(NOT DEPENDS_PATH)
-  set(DEPENDS_PATH "${PROJECT_SOURCE_DIR}/output/depends")
-else()
-  file(TO_CMAKE_PATH "${DEPENDS_PATH}" DEPENDS_PATH)
-endif()
+if(NOT WIN32)
+  if(NOT DEPENDS_PATH)
+    set(DEPENDS_PATH "${PROJECT_SOURCE_DIR}/output/depends")
+  else()
+    file(TO_CMAKE_PATH "${DEPENDS_PATH}" DEPENDS_PATH)
+  endif()
 
-# make sure CMAKE_PREFIX_PATH is set
-if(NOT CMAKE_PREFIX_PATH)
-  set(CMAKE_PREFIX_PATH "${DEPENDS_PATH}")
-else()
-  file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
-  list(APPEND CMAKE_PREFIX_PATH "${DEPENDS_PATH}")
+  # make sure CMAKE_PREFIX_PATH is set
+  if(NOT CMAKE_PREFIX_PATH)
+    set(CMAKE_PREFIX_PATH "${DEPENDS_PATH}")
+  else()
+    file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+    list(APPEND CMAKE_PREFIX_PATH "${DEPENDS_PATH}")
+  endif()
 endif()
 
 if(NOT CMAKE_INSTALL_PREFIX)
@@ -56,14 +58,16 @@ if(CMAKE_TOOLCHAIN_FILE)
   MESSAGE(${BUILD_ARGS})
 endif()
 
-# copy the xbmc-prepare-env.cmake script to the depends path so that we can include it
-file(COPY ${XBMCROOT}/project/cmake/scripts/common/xbmc-prepare-env.cmake DESTINATION ${DEPENDS_PATH}/lib/xbmc)
+if(NOT WIN32)
+  # copy the xbmc-prepare-env.cmake script to the depends path so that we can include it
+  file(COPY ${XBMCROOT}/project/cmake/scripts/common/xbmc-prepare-env.cmake DESTINATION ${DEPENDS_PATH}/lib/xbmc)
 
-# add the location of xbmc-prepare-env.cmake to CMAKE_MODULE_PATH so that it is found
-list(APPEND CMAKE_MODULE_PATH ${DEPENDS_PATH}/lib/xbmc)
+  # add the location of xbmc-prepare-env.cmake to CMAKE_MODULE_PATH so that it is found
+  list(APPEND CMAKE_MODULE_PATH ${DEPENDS_PATH}/lib/xbmc)
 
-# include xbmc-prepare-env.cmake which contains the logic to install the addon header bindings etc
-include(xbmc-prepare-env)
+  # include xbmc-prepare-env.cmake which contains the logic to install the addon header bindings etc
+  include(xbmc-prepare-env)
+endif()
 
 ### get and build all the binary addons
 # look for all the addons to be built
diff --git a/project/cmake/addons/depends/common/xbmc/CMakeLists.txt b/project/cmake/addons/depends/common/xbmc/CMakeLists.txt
deleted file mode 100644 (file)
index a3d66fd..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-project(xbmc)
-
-cmake_minimum_required(VERSION 2.8)
-
-### setup all the necessary paths
-if(NOT XBMCROOT)
-  set(XBMCROOT ${PROJECT_SOURCE_DIR}/../../../../../..)
-else()
-  file(TO_CMAKE_PATH "${XBMCROOT}" XBMCROOT)
-endif()
-get_filename_component(XBMCROOT "${XBMCROOT}" ABSOLUTE)
-
-if(NOT CMAKE_INSTALL_PREFIX)
-  message(FATAL_ERROR "CMAKE_INSTALL_PREFIX (${CMAKE_INSTALL_PREFIX}) is not a valid target directory.")
-else()
-  file(TO_CMAKE_PATH "${CMAKE_INSTALL_PREFIX}" CMAKE_INSTALL_PREFIX)
-endif()
-get_filename_component(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE)
-
-# xbmc-config.cmake.in (further down) expects a "prefix" variable
-get_filename_component(prefix "${CMAKE_INSTALL_PREFIX}" ABSOLUTE)
-
-# parse version.txt to get the version info
-if(EXISTS "${XBMCROOT}/version.txt")
-  file(STRINGS "${XBMCROOT}/version.txt" versions)
-  foreach (version ${versions})
-    string(REGEX MATCH "^[^ ]+" version_name ${version})
-    string(REPLACE "${version_name} " "" version_value ${version})
-    set(APP_${version_name} "${version_value}")
-  endforeach()
-endif()
-
-# bail if we can't parse versions
-if(NOT DEFINED APP_VERSION_MAJOR OR NOT DEFINED APP_VERSION_MINOR)
-  message(FATAL_ERROR "Could not determine app version! make sure that ${XBMCROOT}/version.txt exists")
-endif()
-
-### copy all the addon binding header files to include/xbmc
-# make sure include/xbmc exists and is empty
-set(XBMC_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/xbmc)
-if(NOT EXISTS "${XBMC_LIB_DIR}/")
-  file(MAKE_DIRECTORY ${XBMC_LIB_DIR})
-endif()
-
-set(XBMC_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/include/xbmc)
-if(NOT EXISTS "${XBMC_INCLUDE_DIR}/")
-  file(MAKE_DIRECTORY ${XBMC_INCLUDE_DIR})
-endif()
-
-# generate the proper xbmc-config.cmake file
-configure_file(${XBMCROOT}/project/cmake/xbmc-config.cmake.in ${XBMC_LIB_DIR}/xbmc-config.cmake @ONLY)
-# copy cmake helpers to lib/xbmc
-file(COPY ${XBMCROOT}/project/cmake/xbmc-addon-helpers.cmake ${XBMCROOT}/project/cmake/AddOptions.cmake DESTINATION ${XBMC_LIB_DIR})
-
-### copy all the addon binding header files to include/xbmc
-# parse addon-bindings.mk to get the list of header files to copy
-file(STRINGS ${XBMCROOT}/xbmc/addons/addon-bindings.mk bindings)
-string(REPLACE "\n" ";" bindings "${bindings}")
-foreach(binding ${bindings})
-  string(REPLACE " =" ";" binding "${binding}")
-  string(REPLACE "+=" ";" binding "${binding}")
-  list(GET binding 1 header)
-  # copy the header file to include/xbmc
-  file(COPY ${XBMCROOT}/${header} DESTINATION ${XBMC_INCLUDE_DIR})
-endforeach()
diff --git a/project/cmake/addons/depends/common/xbmc/noinstall.txt b/project/cmake/addons/depends/common/xbmc/noinstall.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/project/cmake/addons/depends/common/xbmc/xbmc.txt b/project/cmake/addons/depends/common/xbmc/xbmc.txt
deleted file mode 100644 (file)
index 0d53f64..0000000
+++ /dev/null
@@ -1 +0,0 @@
-xbmc
\ No newline at end of file
diff --git a/project/cmake/addons/depends/windows/cmake/xbmc/CMakeLists.txt b/project/cmake/addons/depends/windows/cmake/xbmc/CMakeLists.txt
new file mode 100644 (file)
index 0000000..57d8a93
--- /dev/null
@@ -0,0 +1,31 @@
+project(xbmc)
+
+cmake_minimum_required(VERSION 2.8)
+
+list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR})
+
+### setup all the necessary paths
+if(NOT XBMCROOT)
+  set(XBMCROOT ${PROJECT_SOURCE_DIR}/../../../../../../..)
+else()
+  file(TO_CMAKE_PATH "${XBMCROOT}" XBMCROOT)
+endif()
+get_filename_component(XBMCROOT "${XBMCROOT}" ABSOLUTE)
+
+if(NOT CMAKE_INSTALL_PREFIX)
+  message(FATAL_ERROR "CMAKE_INSTALL_PREFIX (${CMAKE_INSTALL_PREFIX}) is not a valid target directory.")
+else()
+  file(TO_CMAKE_PATH "${CMAKE_INSTALL_PREFIX}" CMAKE_INSTALL_PREFIX)
+endif()
+get_filename_component(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE)
+
+### prepare the environment
+# set the DEPENDS_PATH variable used by xbmc-prepare-env
+set(DEPENDS_PATH "${CMAKE_INSTALL_PREFIX}")
+
+# copy the xbmc-prepare-env.cmake script so that we can include it
+file(COPY ${XBMCROOT}/project/cmake/scripts/common/xbmc-prepare-env.cmake DESTINATION ${CMAKE_BINARY_DIR})
+
+# include xbmc-prepare-env.cmake which contains the logic to install the addon header bindings etc
+include(xbmc-prepare-env)
\ No newline at end of file
diff --git a/project/cmake/addons/depends/windows/cmake/xbmc/noinstall.txt b/project/cmake/addons/depends/windows/cmake/xbmc/noinstall.txt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/project/cmake/addons/depends/windows/cmake/xbmc/xbmc.txt b/project/cmake/addons/depends/windows/cmake/xbmc/xbmc.txt
new file mode 100644 (file)
index 0000000..0d53f64
--- /dev/null
@@ -0,0 +1 @@
+xbmc
\ No newline at end of file
index 1dc3d5a..93eab0e 100644 (file)
@@ -92,7 +92,7 @@ cmake "%ADDONS_PATH%" -G "NMake Makefiles" ^
       -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX="%SCRIPTS_PATH%/xbmc-cxx-flag-overrides.cmake" ^
       -DCMAKE_INSTALL_PREFIX=%ADDONS_INSTALL_PATH% ^
       -DXBMCROOT=%WORKDIR% ^
-      -DDEPENDS_PATH=%ADDON_DEPENDS_PATH% ^
+      -DCMAKE_PREFIX_PATH=%ADDON_DEPENDS_PATH% ^
       -DPACKAGE_ZIP=1 ^
       -DARCH_DEFINES="-DTARGET_WINDOWS -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS -D_USE_32BIT_TIME_T -D_WINSOCKAPI_"
 IF ERRORLEVEL 1 (