]> gitweb.hhaalo.de Git - discspan.git/commitdiff
add: cmake config for windows and linux
authorBastian Dehn <hhaalo@arcor.de>
Fri, 11 Feb 2022 18:15:29 +0000 (19:15 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Fri, 11 Feb 2022 18:28:35 +0000 (19:28 +0100)
CMAKE_SYSTEM_NAME value "Linux" or "Windows"

for Linux build deb packages
for Windows build zip package

CMakeLists.txt
libs/spandisc/CMakeLists.txt

index 0d2ca1e6d1c72d379394972e4ef41337d4c32234..ef7f7db86c7515e9c10c3d2a4ca8767ce37bd5f4 100644 (file)
@@ -1,5 +1,15 @@
 cmake_minimum_required(VERSION 3.13.4)
 
+set(CMAKE_SYSTEM_NAME "Linux" CACHE STRING "Build for Linux")
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+       set(CMAKE_C_COMPILER "gcc" CACHE STRING "C Compiler")
+       set(CMAKE_CXX_COMPILER "g++" CACHE STRING "C++ Compiler")
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+       set(CMAKE_C_COMPILER "x86_64-w64-mingw32-gcc" CACHE STRING "C Compiler")
+       set(CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++" CACHE STRING "C++ Compiler")
+endif()
+
 set(CMAKE_C_FLAGS "-Wall")
 set(CMAKE_CXX_FLAGS "-Wall")
 
@@ -33,45 +43,54 @@ target_link_libraries(discspan spandisc)
 
 message(STATUS "Install target discspan")
 message(VERBOSE "With component discspan")
-install(TARGETS discspan
-       DESTINATION "${CMAKE_INSTALL_PREFIX}/bin"
-       COMPONENT discspan)
-install(FILES docs/discspan.1
-       DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1"
-       COMPONENT discspan)
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+       install(TARGETS discspan
+               DESTINATION "${CMAKE_INSTALL_PREFIX}/bin"
+               COMPONENT discspan)
+       install(FILES docs/discspan.1
+               DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1"
+               COMPONENT discspan)
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+       install(TARGETS discspan COMPONENT discspan)
+endif()
 
 ################################################################################
 # Build deb Packages
 #
 ################################################################################
 
-set(CPACK_GENERATOR "DEB")
-set(CPACK_DEB_COMPONENT_INSTALL ON)
-set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
-set(CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}")
-set(CPACK_DEBIAN_PACKAGE_RELEASE "1")
-set(CPACK_DEBIAN_ARCHITECTURE "amd64")
-set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Bastian Dehn <hhaalo@arcor.de")
-set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
-set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://gitweb.hhaalo.de/?p=discspan.git")
-set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
-if (BUILD_SHARED_LIBS)
-       set(CPACK_DEBIAN_PACKAGE_DEPENDS "libspandisc")
-else()
-       set(CPACK_DEBIAN_PACKAGE_DEPENDS "discspan")
-endif()
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+       set(CPACK_GENERATOR "DEB")
+       set(CPACK_DEB_COMPONENT_INSTALL ON)
+       set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
+       set(CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}")
+       set(CPACK_DEBIAN_PACKAGE_RELEASE "1")
+       set(CPACK_DEBIAN_ARCHITECTURE "amd64")
+       set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Bastian Dehn <hhaalo@arcor.de")
+       set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
+       set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://gitweb.hhaalo.de/?p=discspan.git")
+       set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
+       if (BUILD_SHARED_LIBS)
+               set(CPACK_DEBIAN_PACKAGE_DEPENDS "libspandisc")
+       else()
+               set(CPACK_DEBIAN_PACKAGE_DEPENDS "discspan")
+       endif()
 
-# discspan package
-set(CPACK_DEBIAN_DISCSPAN_PACKAGE_NAME "discspan")
-set(CPACK_DEBIAN_DISCSPAN_FILE_NAME "${CPACK_DEBIAN_DISCSPAN_PACKAGE_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}_${CPACK_DEBIAN_ARCHITECTURE}.deb")
-set(CPACK_DEBIAN_DISCSPAN_DESCRIPTION "UI for libspandisc")
-set(CPACK_DEBIAN_DISCSPAN_PACKAGE_SECTION "utils")
-if (BUILD_SHARED_LIBS)
-       set(CPACK_DEBIAN_DISCSPAN_PACKAGE_DEPENDS "libspandisc")
-else()
-       set(CPACK_DEBIAN_DISCSPAN_PACKAGE_DEPENDS "discspan")
-endif()
+       # discspan package
+       set(CPACK_DEBIAN_DISCSPAN_PACKAGE_NAME "discspan")
+       set(CPACK_DEBIAN_DISCSPAN_FILE_NAME "${CPACK_DEBIAN_DISCSPAN_PACKAGE_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}_${CPACK_DEBIAN_ARCHITECTURE}.deb")
+       set(CPACK_DEBIAN_DISCSPAN_DESCRIPTION "UI for libspandisc")
+       set(CPACK_DEBIAN_DISCSPAN_PACKAGE_SECTION "utils")
+       if (BUILD_SHARED_LIBS)
+               set(CPACK_DEBIAN_DISCSPAN_PACKAGE_DEPENDS "libspandisc")
+       else()
+               set(CPACK_DEBIAN_DISCSPAN_PACKAGE_DEPENDS "discspan")
+       endif()
 
-include(libs/spandisc/CPackConfig.cmake)
+       include(libs/spandisc/CPackConfig.cmake)
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+       set(CPACK_GENERATOR "ZIP")
+endif()
 
 include(CPack)
index 5ad2023514d14977c3ff7d73738d9041e12fa2a7..f698e97847f83a681b507f41fe64c46a2d432b98 100644 (file)
@@ -1,13 +1,23 @@
 cmake_minimum_required(VERSION 3.13.4)
 
+set(CMAKE_SYSTEM_NAME "Linux" CACHE STRING "Build for Linux")
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+       set(CMAKE_C_COMPILER "gcc" CACHE STRING "C Compiler")
+       set(CMAKE_CXX_COMPILER "g++" CACHE STRING "C++ Compiler")
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+       set(CMAKE_C_COMPILER "x86_64-w64-mingw32-gcc" CACHE STRING "C Compiler")
+       set(CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++" CACHE STRING "C++ Comiler")
+endif()
+
 set(CMAKE_C_FLAGS "-Wall")
 set(CMAKE_CXX_FLAGS "-Wall")
 
+project(spandisc)
+
 set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Install prefix")
 message(STATUS "CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}")
 
-project(spandisc)
-
 set(PROJECT_VERSION_MAJOR 1)
 set(PROJECT_VERSION_MINOR 0)
 set(PROJECT_VERSION_PATCH 0)
@@ -43,28 +53,39 @@ target_link_libraries(spandisc m)
 message(STATUS "Install target spandisc")
 message(VERBOSE "With component libspandisc")
 message(VERBOSE "With component libspandisc-dev")
-install(TARGETS spandisc
-       DESTINATION "${CMAKE_INSTALL_PREFIX}/lib"
-       COMPONENT libspandisc
-       PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_PREFIX}/include"
-       COMPONENT libspandisc-dev)
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+       install(TARGETS spandisc
+               DESTINATION "${CMAKE_INSTALL_PREFIX}/lib"
+               COMPONENT libspandisc
+               PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_PREFIX}/include"
+               COMPONENT libspandisc-dev)
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+       install(TARGETS spandisc
+               COMPONENT libspandisc
+               COMPONENT libspandisc-dev)
+endif()
 
 ################################################################################
 # Build deb Packages
 #
 ################################################################################
 
-set(CPACK_GENERATOR "DEB")
-set(CPACK_DEB_COMPONENT_INSTALL ON)
-set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
-set(CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}")
-set(CPACK_DEBIAN_PACKAGE_RELEASE "1")
-set(CPACK_DEBIAN_ARCHITECTURE "amd64")
-set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Bastian Dehn <hhaalo@arcor.de")
-set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
-set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://gitweb.hhaalo.de/?p=discspan.git")
-set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
-set(CPACK_DEBIAN_PACKAGE_DEPENDS "libspandisc")
-include(CPackConfig.cmake)
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+       set(CPACK_GENERATOR "DEB")
+       set(CPACK_DEB_COMPONENT_INSTALL ON)
+       set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
+       set(CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}")
+       set(CPACK_DEBIAN_PACKAGE_RELEASE "1")
+       set(CPACK_DEBIAN_ARCHITECTURE "amd64")
+       set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Bastian Dehn <hhaalo@arcor.de")
+       set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
+       set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://gitweb.hhaalo.de/?p=discspan.git")
+       set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
+       set(CPACK_DEBIAN_PACKAGE_DEPENDS "libspandisc")
+       include(CPackConfig.cmake)
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+       set(CPACK_GENERATOR "ZIP")
+endif()
 
 include(CPack)