#/****************************************************************************** #* Copyright (c) 2014, Texas Instruments Incorporated - http://www.ti.com/ #* All rights reserved. #* #* Redistribution and use in source and binary forms, with or without #* modification, are permitted provided that the following conditions are met: #* * Redistributions of source code must retain the above copyright #* notice, this list of conditions and the following disclaimer. #* * Redistributions in binary form must reproduce the above copyright #* notice, this list of conditions and the following disclaimer in the #* documentation and/or other materials provided with the distribution. #* * Neither the name of Texas Instruments Incorporated nor the #* names of its contributors may be used to endorse or promote products #* derived from this software without specific prior written permission. #* #* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" #* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE #* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE #* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE #* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR #* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF #* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS #* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN #* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) #* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF #* THE POSSIBILITY OF SUCH DAMAGE. #*****************************************************************************/ CMAKE_MINIMUM_REQUIRED (VERSION 2.6) SET (CMAKE_BUILD_TYPE Release) PROJECT (ti-openmpacc) IF (CROSS_BUILD) MESSAGE (STATUS "x86 BUILD MACHINE detected, CROSS_BUILD triggered") SET(NATIVE_BUILD OFF) ELSE() MESSAGE (STATUS "ARM BUILD MACHINE detected, NATIVE BUILD triggered") SET(NATIVE_BUILD ON) ENDIF() # Set Project Version # If VERSION is supplied use that, other wise set last known version IF(VERSION) # Get from supplied VERSION STRING(REPLACE "." ";" PROJECT_VERSION ${VERSION}) LIST(GET PROJECT_VERSION 0 ${PROJECT_NAME}_MAJOR_VERSION) LIST(GET PROJECT_VERSION 1 ${PROJECT_NAME}_MINOR_VERSION) LIST(GET PROJECT_VERSION 2 ${PROJECT_NAME}_PATCH_LEVEL) ELSE() # Set Last known version SET (${PROJECT_NAME}_MAJOR_VERSION 1) SET (${PROJECT_NAME}_MINOR_VERSION 1) SET (${PROJECT_NAME}_PATCH_LEVEL 0) ENDIF() # OpenMPAcc platform version SET(${PROJECT_NAME}_VERSION ${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}.${${PROJECT_NAME}_PATCH_LEVEL}) MESSAGE (STATUS "Build version is ${${PROJECT_NAME}_VERSION}") # Set SONAME for OpenMPAcc library SET(${PROJECT_NAME}_SOVERSION ${${PROJECT_NAME}_MAJOR_VERSION}) SET (CMAKE_INSTALL_PREFIX $ENV{DESTDIR}) MESSAGE (STATUS "Install path is ${CMAKE_INSTALL_PREFIX}") # Set up install permissions for file, directories and binaries. SET (OMPACC_FPERMS PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ) # Directory permissions (775). Files within the directories are set as above. SET (OMPACC_DPERMS FILE_${OMPACC_FPERMS} DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) # Binary permissions (775) SET (OMPACC_BPERMS PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) IF (NOT OMPACC_EXAMPLES_DIR) SET(OMPACC_EXAMPLES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../examples) ENDIF() IF ($ENV{BUILD_BOOST}) MESSAGE (STATUS "Building Boost locally") ADD_SUBDIRECTORY (boost) ENDIF() if (NOT BUILD_OUTPUT) set(BUILD_OUTPUT all) endif() if (BUILD_OUTPUT STREQUAL "all" OR BUILD_OUTPUT STREQUAL "clacc") add_subdirectory (clacc) endif () if (BUILD_OUTPUT STREQUAL "all" OR BUILD_OUTPUT STREQUAL "examples") add_subdirectory (${OMPACC_EXAMPLES_DIR} ${CMAKE_CURRENT_BINARY_DIR}/examples) endif () if (${BUILD_OUTPUT} STREQUAL "all" OR ${BUILD_OUTPUT} STREQUAL "lib") add_subdirectory (libompacc) # Create the top level directories with the desired install permissions INSTALL(DIRECTORY DESTINATION /usr/share/ti ${OMPACC_DPERMS}) INSTALL(DIRECTORY DESTINATION /usr/share/doc/ti-openmpacc ${OMPACC_DPERMS}) INSTALL(DIRECTORY DESTINATION /usr/share/ti/openmpacc ${OMPACC_DPERMS}) INSTALL(DIRECTORY DESTINATION /usr/share/ti/openmpacc/dsp ${OMPACC_DPERMS}) INSTALL(DIRECTORY DESTINATION /usr/share/ti/openmpacc/dsp/include ${OMPACC_DPERMS}) # readme.txt and manifest docs INSTALL (FILES openmpacc-manifest.html DESTINATION /usr/share/doc/ti-openmpacc ${OMPACC_FPERMS}) # Headers INSTALL (FILES include/ti_omp_device.h DESTINATION /usr/include ${OMPACC_FPERMS}) INSTALL (FILES include/ti_omp_device.h DESTINATION /usr/share/ti/openmpacc/dsp/include ${OMPACC_FPERMS}) INSTALL (FILES include/omp.h DESTINATION /usr/share/ti/openmpacc/dsp/include ${OMPACC_FPERMS}) endif () SET (CPACK_GENERATOR "DEB") SET (CPACK_DEBIAN_PACKAGE_MAINTAINER "TI") SET (CPACK_DEBIAN_PACKAGE_NAME ${PROJECT_NAME}) SET (CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf") SET (CPACK_PACKAGE_VERSION_MAJOR ${${PROJECT_NAME}_MAJOR_VERSION}) SET (CPACK_PACKAGE_VERSION_MINOR ${${PROJECT_NAME}_MINOR_VERSION}) SET (CPACK_PACKAGE_VERSION_PATCH ${${PROJECT_NAME}_PATCH_LEVEL}) SET (CPACK_DEBIAN_PACKAGE_DEPENDS "debhelper (>= 9), ti-opencl (>= 0.12.0), libelf-dev, cmake, cmem-dev, libboost-filesystem-dev, libboost-system-dev, libboost-program-options-dev") #Set where dpkg will put the install set (CPACK_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) set (CPACK_SET_DESTDIR TRUE) include(CPack)