aboutsummaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
authorCristiano A. Silva <hudokkow@gmail.com>2016-04-16 16:59:25 +0100
committerCristiano A. Silva <hudokkow@gmail.com>2016-04-16 16:59:25 +0100
commit2bb2b5e19fba139f16c4cc51092584e63c0dd42c (patch)
tree9efdc1e104fad46b27c239ee1dce36ade49d1fcc /project
parent988781d8ba94eb4e596cbcf4a769a1e7eed0a8b8 (diff)
parente3999993281d96ba2cbcb3bac8df2df31f04ffc5 (diff)
Merge pull request #9568 from hudokkow/cmake
[cmake][linux] Several fixes
Diffstat (limited to 'project')
-rw-r--r--project/cmake/CMakeLists.txt24
-rw-r--r--project/cmake/installdata/cmake-files.txt13
-rw-r--r--project/cmake/scripts/common/macros.cmake33
-rw-r--r--project/cmake/scripts/darwin/pathsetup.cmake8
-rw-r--r--project/cmake/scripts/freebsd/install.cmake4
-rw-r--r--project/cmake/scripts/linux/install.cmake60
-rw-r--r--project/cmake/scripts/linux/pathsetup.cmake8
-rw-r--r--project/cmake/scripts/windows/pathsetup.cmake8
8 files changed, 120 insertions, 38 deletions
diff --git a/project/cmake/CMakeLists.txt b/project/cmake/CMakeLists.txt
index 8def4fc829..232dfbddb7 100644
--- a/project/cmake/CMakeLists.txt
+++ b/project/cmake/CMakeLists.txt
@@ -252,6 +252,11 @@ foreach(binding ${bindings})
list(APPEND addon_bindings ${CORE_SOURCE_DIR}/${binding})
endforeach()
+file(STRINGS ${PROJECT_SOURCE_DIR}/installdata/cmake-files.txt cmakefiles)
+foreach(cmakefile ${cmakefiles})
+ list(APPEND cmake_files ${CORE_SOURCE_DIR}/${cmakefile})
+endforeach()
+
add_subdirectory(${CORE_SOURCE_DIR}/lib/gtest ${CORE_BUILD_DIR}/gtest EXCLUDE_FROM_ALL)
# Subdirs
@@ -367,11 +372,22 @@ foreach(msg ${final_message})
endforeach()
if(VERBOSE)
- message(STATUS "\n#---- Internal Variables ----# ")
+ message(STATUS "\n#--------------- Internal Variables -------------#")
message(STATUS "DEPLIBS: ${DEPLIBS}")
- message(STATUS "SYSTEM_LDFLAGS: ${SYSTEM_LDFLAGS}")
message(STATUS "core_DEPENDS: ${core_DEPENDS}")
- message(STATUS "CMAKE_DL_LIBS: ${CMAKE_DL_LIBS}")
+ message(STATUS "#---------------------------------------------#")
+ message(STATUS "SYSTEM_LDFLAGS : ${SYSTEM_LDFLAGS}")
+ message(STATUS "CMAKE_DL_LIBS : ${CMAKE_DL_LIBS}")
+ message(STATUS "CMAKE_C_FLAGS : ${CMAKE_C_FLAGS}")
+ message(STATUS "CMAKE_CXX_FLAGS : ${CMAKE_CXX_FLAGS}")
+ message(STATUS "CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}")
+ message(STATUS "#---------------------------------------------#")
+ message(STATUS "bindir : ${bindir}")
+ message(STATUS "includedir : ${includedir}")
+ message(STATUS "libdir : ${libdir}")
+ message(STATUS "datarootdir: ${datarootdir}")
+ message(STATUS "#---------------------------------------------#")
+ message(STATUS "GIT_REV: ${APP_SCMID}")
endif()
-message(STATUS "#-----------------------#")
+message(STATUS "#---------------------------------------------#")
diff --git a/project/cmake/installdata/cmake-files.txt b/project/cmake/installdata/cmake-files.txt
new file mode 100644
index 0000000000..8dda8cdb9e
--- /dev/null
+++ b/project/cmake/installdata/cmake-files.txt
@@ -0,0 +1,13 @@
+project/cmake/scripts/common/addon-helpers.cmake
+project/cmake/scripts/common/addoptions.cmake
+project/cmake/scripts/common/archsetup.cmake
+project/cmake/scripts/common/checkcommits.cmake
+project/cmake/scripts/common/check_target_platform.cmake
+project/cmake/scripts/common/generateversionedfiles.cmake
+project/cmake/scripts/common/generatorsetup.cmake
+project/cmake/scripts/common/handle-depends.cmake
+project/cmake/scripts/common/macros.cmake
+project/cmake/scripts/common/managestring.cmake
+project/cmake/scripts/common/pathsetup.cmake
+project/cmake/scripts/common/prepare-env.cmake
+project/cmake/scripts/common/projectmacros.cmake
diff --git a/project/cmake/scripts/common/macros.cmake b/project/cmake/scripts/common/macros.cmake
index e878033f7c..e5eab4b343 100644
--- a/project/cmake/scripts/common/macros.cmake
+++ b/project/cmake/scripts/common/macros.cmake
@@ -319,6 +319,9 @@ macro(today RESULT)
endmacro()
function(core_find_git_rev)
+# this is dead code. It should be version.txt
+# revisit later after some more light reading about cmake's string parsing
+# and filtering.
if(EXISTS ${CORE_SOURCE_DIR}/VERSION)
file(STRINGS ${CORE_SOURCE_DIR}/VERSION VERSION_FILE)
string(SUBSTRING "${VERSION_FILE}" 1 16 GIT_REV)
@@ -329,25 +332,29 @@ function(core_find_git_rev)
RESULT_VARIABLE status_code
WORKING_DIRECTORY ${CORE_SOURCE_DIR})
if (NOT status_code)
- execute_process(COMMAND ${GIT_EXECUTABLE} diff-index --cached --ignore-submodules --quiet HEAD --
+ execute_process(COMMAND ${GIT_EXECUTABLE} diff-index --ignore-submodules --quiet HEAD --
RESULT_VARIABLE status_code
WORKING_DIRECTORY ${CORE_SOURCE_DIR})
endif()
- today(DATE)
- execute_process(COMMAND ${GIT_EXECUTABLE} --no-pager log --abbrev=7 -n 1
- --pretty=format:"%h-dirty" HEAD
- OUTPUT_VARIABLE LOG_UNFORMATTED
+ if (status_code)
+ execute_process(COMMAND ${GIT_EXECUTABLE} log -n 1 --pretty=format:"%h-dirty" HEAD
+ OUTPUT_VARIABLE HASH
+ WORKING_DIRECTORY ${CORE_SOURCE_DIR})
+ string(SUBSTRING ${HASH} 1 13 HASH)
+ else()
+ execute_process(COMMAND ${GIT_EXECUTABLE} log -n 1 --pretty=format:"%h" HEAD
+ OUTPUT_VARIABLE HASH
+ WORKING_DIRECTORY ${CORE_SOURCE_DIR})
+ string(SUBSTRING ${HASH} 1 7 HASH)
+ endif()
+ execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=format:"%cd" --date=short HEAD
+ OUTPUT_VARIABLE DATE
WORKING_DIRECTORY ${CORE_SOURCE_DIR})
- string(SUBSTRING ${LOG_UNFORMATTED} 1 7 HASH)
+ string(SUBSTRING ${DATE} 1 10 DATE)
else()
- execute_process(COMMAND ${GIT_EXECUTABLE} --no-pager log --abbrev=7 -n 1
- --pretty=format:"%h %cd" HEAD
- OUTPUT_VARIABLE LOG_UNFORMATTED
- WORKING_DIRECTORY ${CORE_SOURCE_DIR})
- string(SUBSTRING ${LOG_UNFORMATTED} 1 7 HASH)
- string(SUBSTRING ${LOG_UNFORMATTED} 9 10 DATE)
- string(REPLACE "-" "" DATE ${DATE})
+ today(DATE)
endif()
+ string(REPLACE "-" "" DATE ${DATE})
set(GIT_REV "${DATE}-${HASH}")
endif()
if(GIT_REV)
diff --git a/project/cmake/scripts/darwin/pathsetup.cmake b/project/cmake/scripts/darwin/pathsetup.cmake
index e31f66eff8..071dfd45ea 100644
--- a/project/cmake/scripts/darwin/pathsetup.cmake
+++ b/project/cmake/scripts/darwin/pathsetup.cmake
@@ -2,7 +2,7 @@ if(NOT prefix)
set(prefix ${DEPENDS_PATH})
endif()
if(NOT exec_prefix)
- set(exec_prefix \${prefix})
+ set(exec_prefix ${prefix})
endif()
if(NOT libdir)
set(libdir ${prefix}/lib)
@@ -17,7 +17,7 @@ if(NOT datarootdir)
set(datarootdir ${prefix}/share)
endif()
if(NOT datadir)
- set(datadir \${datarootdir})
+ set(datadir ${datarootdir})
endif()
list(APPEND final_message "-- PATH config --")
@@ -28,5 +28,5 @@ list(APPEND final_message "Includedir: ${includedir}")
list(APPEND final_message "Datarootdir: ${datarootdir}")
list(APPEND final_message "Datadir: ${datadir}")
-set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/xbmc\"
- -DINSTALL_PATH=\"${datarootdir}/xbmc\")
+set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/kodi\"
+ -DINSTALL_PATH=\"${datarootdir}/kodi\")
diff --git a/project/cmake/scripts/freebsd/install.cmake b/project/cmake/scripts/freebsd/install.cmake
index 0c8939e9ff..8247416c7b 100644
--- a/project/cmake/scripts/freebsd/install.cmake
+++ b/project/cmake/scripts/freebsd/install.cmake
@@ -20,7 +20,9 @@ install(FILES ${CORE_SOURCE_DIR}/tools/Linux/xbmc-xsession.desktop
RENAME XBMC.desktop
DESTINATION share/xsessions)
-install(FILES ${CORE_SOURCE_DIR}/LICENSE.GPL
+install(FILES ${CORE_SOURCE_DIR}/copying.txt
+ ${CORE_SOURCE_DIR}/LICENSE.GPL
+ ${CORE_SOURCE_DIR}/version.txt
${CORE_SOURCE_DIR}/docs/README.freebsd
DESTINATION share/doc/xbmc)
diff --git a/project/cmake/scripts/linux/install.cmake b/project/cmake/scripts/linux/install.cmake
index b8876108b0..fff4c56883 100644
--- a/project/cmake/scripts/linux/install.cmake
+++ b/project/cmake/scripts/linux/install.cmake
@@ -14,28 +14,54 @@ else()
set(USE_OPENGLES 0)
endif()
+configure_file(${CORE_SOURCE_DIR}/project/cmake/${APP_NAME_LC}-config.cmake.in
+ ${CORE_BUILD_DIR}/${APP_NAME_LC}-config.cmake @ONLY)
+
configure_file(${CORE_SOURCE_DIR}/tools/Linux/kodi.sh.in
${CORE_BUILD_DIR}/scripts/${APP_NAME_LC} @ONLY)
configure_file(${CORE_SOURCE_DIR}/tools/Linux/kodi-standalone.sh.in
- ${CORE_BUILD_DIR}/scripts/${APP_NAME_LC}-standalone @ONLY)
+ ${CORE_BUILD_DIR}/scripts/${APP_NAME_LC}-standalone @ONLY)
install(TARGETS ${APP_NAME_LC} DESTINATION ${libdir}/kodi)
if(ENABLE_X11 AND XRANDR_FOUND)
install(TARGETS ${APP_NAME_LC}-xrandr DESTINATION ${libdir}/${APP_NAME_LC})
endif()
+
+if(NOT EXISTS ${libdir}/xbmc)
+install(CODE "execute_process (COMMAND ln -sf ${APP_NAME_LC}/ xbmc WORKING_DIRECTORY ${libdir})")
+endif()
install(FILES ${addon_bindings} DESTINATION ${includedir}/kodi)
-install(FILES ${cmake-files}
+if(NOT EXISTS ${includedir}/xbmc)
+install(CODE "execute_process (COMMAND ln -sf ${APP_NAME_LC}/ xbmc WORKING_DIRECTORY ${includedir})")
+endif()
+
+install(FILES ${cmake_files}
DESTINATION ${libdir}/kodi)
+install(FILES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${APP_NAME_LC}-config.cmake
+ DESTINATION ${libdir}/${APP_NAME_LC})
+install(FILES ${CORE_SOURCE_DIR}/project/cmake/xbmc-config.cmake.in
+ RENAME xbmc-config.cmake
+ DESTINATION ${libdir}/${APP_NAME_LC})
+
install(PROGRAMS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/scripts/${APP_NAME_LC}
- ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/scripts/${APP_NAME_LC}-standalone
+ ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/scripts/${APP_NAME_LC}-standalone
DESTINATION ${bindir})
+install(CODE "execute_process (COMMAND ln -sf ${APP_NAME_LC} xbmc WORKING_DIRECTORY ${bindir})")
+install(CODE "execute_process (COMMAND ln -sf ${APP_NAME_LC}-standalone xbmc-standalone WORKING_DIRECTORY ${bindir})")
configure_file(${CORE_SOURCE_DIR}/tools/Linux/kodi-xsession.desktop.in
- ${CORE_BUILD_DIR}/${APP_NAME_LC}-xsession.desktop)
-install(FILES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${APP_NAME_LC}-xsession.desktop
+ ${CORE_BUILD_DIR}/${APP_NAME_LC}.desktop)
+install(FILES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${APP_NAME_LC}.desktop
DESTINATION ${datarootdir}/xsessions)
+install(CODE "execute_process (COMMAND ln -sf ${APP_NAME_LC}.desktop xbmc.desktop WORKING_DIRECTORY ${datarootdir}/xsessions/)")
+
+if(NOT EXISTS ${datarootdir}/xbmc)
+install(CODE "execute_process (COMMAND ln -sf ${APP_NAME_LC}/ xbmc WORKING_DIRECTORY ${datarootdir})")
+endif()
-install(FILES ${CORE_SOURCE_DIR}/LICENSE.GPL
+install(FILES ${CORE_SOURCE_DIR}/copying.txt
+ ${CORE_SOURCE_DIR}/LICENSE.GPL
+ ${CORE_SOURCE_DIR}/version.txt
${CORE_SOURCE_DIR}/docs/README.linux
DESTINATION ${datarootdir}/doc/kodi)
@@ -83,10 +109,28 @@ foreach(subdir ${build_dirs})
endif()
endforeach()
-install(FILES ${CORE_SOURCE_DIR}/media/icon48x48.png
+install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon16x16.png
+ RENAME ${APP_NAME_LC}.png
+ DESTINATION ${datarootdir}/icons/hicolor/16x16/apps)
+install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon22x22.png
+ RENAME ${APP_NAME_LC}.png
+ DESTINATION ${datarootdir}/icons/hicolor/22x22/apps)
+install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon24x24.png
+ RENAME ${APP_NAME_LC}.png
+ DESTINATION ${datarootdir}/icons/hicolor/24x24/apps)
+install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon32x32.png
+ RENAME ${APP_NAME_LC}.png
+ DESTINATION ${datarootdir}/icons/hicolor/32x32/apps)
+install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon48x48.png
RENAME ${APP_NAME_LC}.png
DESTINATION ${datarootdir}/icons/hicolor/48x48/apps)
-install(FILES ${CORE_SOURCE_DIR}/media/icon256x256.png
+install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon64x64.png
+ RENAME ${APP_NAME_LC}.png
+ DESTINATION ${datarootdir}/icons/hicolor/64x64/apps)
+install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon128x128.png
+ RENAME ${APP_NAME_LC}.png
+ DESTINATION ${datarootdir}/icons/hicolor/128x128/apps)
+install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon256x256.png
RENAME ${APP_NAME_LC}.png
DESTINATION ${datarootdir}/icons/hicolor/256x256/apps)
diff --git a/project/cmake/scripts/linux/pathsetup.cmake b/project/cmake/scripts/linux/pathsetup.cmake
index 940fb620e4..8550616cd7 100644
--- a/project/cmake/scripts/linux/pathsetup.cmake
+++ b/project/cmake/scripts/linux/pathsetup.cmake
@@ -4,7 +4,7 @@ else()
set(CMAKE_INSTALL_PREFIX ${prefix})
endif()
if(NOT exec_prefix)
- set(exec_prefix \${prefix})
+ set(exec_prefix ${prefix})
endif()
if(NOT libdir)
set(libdir ${prefix}/lib)
@@ -19,7 +19,7 @@ if(NOT datarootdir)
set(datarootdir ${prefix}/share)
endif()
if(NOT datadir)
- set(datadir \${datarootdir})
+ set(datadir ${datarootdir})
endif()
list(APPEND final_message "-- PATH config --")
@@ -30,5 +30,5 @@ list(APPEND final_message "Includedir: ${includedir}")
list(APPEND final_message "Datarootdir: ${datarootdir}")
list(APPEND final_message "Datadir: ${datadir}")
-set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/xbmc\"
- -DINSTALL_PATH=\"${datarootdir}/xbmc\")
+set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/kodi\"
+ -DINSTALL_PATH=\"${datarootdir}/kodi\")
diff --git a/project/cmake/scripts/windows/pathsetup.cmake b/project/cmake/scripts/windows/pathsetup.cmake
index 940fb620e4..8550616cd7 100644
--- a/project/cmake/scripts/windows/pathsetup.cmake
+++ b/project/cmake/scripts/windows/pathsetup.cmake
@@ -4,7 +4,7 @@ else()
set(CMAKE_INSTALL_PREFIX ${prefix})
endif()
if(NOT exec_prefix)
- set(exec_prefix \${prefix})
+ set(exec_prefix ${prefix})
endif()
if(NOT libdir)
set(libdir ${prefix}/lib)
@@ -19,7 +19,7 @@ if(NOT datarootdir)
set(datarootdir ${prefix}/share)
endif()
if(NOT datadir)
- set(datadir \${datarootdir})
+ set(datadir ${datarootdir})
endif()
list(APPEND final_message "-- PATH config --")
@@ -30,5 +30,5 @@ list(APPEND final_message "Includedir: ${includedir}")
list(APPEND final_message "Datarootdir: ${datarootdir}")
list(APPEND final_message "Datadir: ${datadir}")
-set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/xbmc\"
- -DINSTALL_PATH=\"${datarootdir}/xbmc\")
+set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/kodi\"
+ -DINSTALL_PATH=\"${datarootdir}/kodi\")