+ packaging + cmake files
This commit is contained in:
parent
8ba39921fa
commit
2b9402d3f5
3 changed files with 190 additions and 30 deletions
77
CMakeLists.txt
Normal file
77
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
######################################################################################
|
||||||
|
### 1) Set the application properties
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
# Checks cmake version compatibility
|
||||||
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
||||||
|
|
||||||
|
PROJECT(DO)
|
||||||
|
|
||||||
|
SET(PROJECT_VERSION_MAJOR 1)
|
||||||
|
SET(PROJECT_VERSION_MINOR 0)
|
||||||
|
SET(PROJECT_VERSION_PATCH 0)
|
||||||
|
SET(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
### 2) Include the install configuration file where are defined the main variables
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/install.cmake)
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################################
|
||||||
|
### 3) Include required modules & utilities
|
||||||
|
#####################################################################################
|
||||||
|
|
||||||
|
INCLUDE(CMakeBackwardCompatibilityCXX)
|
||||||
|
#INCLUDE(FindDoxygen)
|
||||||
|
INCLUDE(CheckLibraryExists)
|
||||||
|
#INCLUDE(Dart OPTIONAL)
|
||||||
|
|
||||||
|
FIND_PACKAGE(Doxygen)
|
||||||
|
FIND_PACKAGE(MPI REQUIRED)
|
||||||
|
FIND_PACKAGE(Gnuplot REQUIRED)
|
||||||
|
|
||||||
|
# Set a special flag if the environment is windows (should do the same in a config.g file)
|
||||||
|
IF (WIN32)
|
||||||
|
ADD_DEFINITIONS(-D_WINDOWS=1)
|
||||||
|
ENDIF (WIN32)
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################################
|
||||||
|
### 4) Manage the build type
|
||||||
|
#####################################################################################
|
||||||
|
|
||||||
|
INCLUDE(${CMAKE_SOURCE_DIR}/BuildConfig.cmake)
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
### 5) Now where we go ???
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
# warning: you have to compile libraries before bopo sources because of dependencies.
|
||||||
|
ADD_SUBDIRECTORY(lib)
|
||||||
|
ADD_SUBDIRECTORY(doc)
|
||||||
|
ADD_SUBDIRECTORY(src)
|
||||||
|
ADD_SUBDIRECTORY(test)
|
||||||
|
ADD_SUBDIRECTORY(application)
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
### 6) Include packaging
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
INCLUDE(Packaging.cmake)
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
74
Packaging.cmake
Normal file
74
Packaging.cmake
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
######################################################################################
|
||||||
|
### 1) Check dependencies
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
IF (NOT DEFINED PROJECT_NAME OR
|
||||||
|
NOT DEFINED PROJECT_VERSION_MAJOR OR
|
||||||
|
NOT DEFINED PROJECT_VERSION_MINOR OR
|
||||||
|
NOT DEFINED PROJECT_VERSION_PATCH OR
|
||||||
|
NOT DEFINED PROJECT_VERSION)
|
||||||
|
MESSAGE(FATAL_ERROR "Be sure you have defined PROJECT_NAME and PROJECT_VERSION*.")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
### 2) Set up components
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
SET(CPACK_COMPONENTS_ALL libraries)
|
||||||
|
SET(CPACK_ALL_INSTALL_TYPES Full)
|
||||||
|
|
||||||
|
SET(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Distribution Objects")
|
||||||
|
SET(CPACK_COMPONENT_LIBRARIES_DESCRIPTION "Distribution Objects library")
|
||||||
|
SET(CPACK_COMPONENT_LIBRARIES_GROUP "Devel")
|
||||||
|
SET(CPACK_COMPONENT_LIBRARIES_INSTALL_TYPES Full)
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
### 3) Set up general information about packaging
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
# For more details: http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack
|
||||||
|
|
||||||
|
#cpack package information
|
||||||
|
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
|
||||||
|
SET(CPACK_PACKAGE_DESCRIPTION "Distribution Objects")
|
||||||
|
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
|
||||||
|
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Distribution Objects")
|
||||||
|
SET(CPACK_PACKAGE_VENDOR "Thales")
|
||||||
|
SET(CPACK_PACKAGE_CONTACT "caner.candan@thalesgroup.com")
|
||||||
|
SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
|
||||||
|
SET(CPACK_STRIP_FILES ${PROJECT_NAME})
|
||||||
|
SET(CPACK_SOURCE_STRIP_FILES "bin/${PROJECT_NAME}")
|
||||||
|
SET(CPACK_PACKAGE_EXECUTABLES "${PROJECT_NAME}" "${PROJECT_NAME}")
|
||||||
|
SET(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
|
||||||
|
SET(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
||||||
|
SET(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
||||||
|
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME} ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
### 4) Set up debian packaging information
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libstdc++6, libgcc1, libc6, libxml2, libmpich2-1.2")
|
||||||
|
|
||||||
|
SET(CPACK_DEBIAN_PACKAGE_SECTION "devel")
|
||||||
|
SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
### 5) And finally, include cpack, this is the last thing to do.
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
INCLUDE(CPack)
|
||||||
|
|
||||||
|
######################################################################################
|
||||||
|
|
@ -1,35 +1,44 @@
|
||||||
|
######################################################################################
|
||||||
|
### 1) Include useful packages
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
FIND_PACKAGE(Boost 1.33.0 REQUIRED)
|
FIND_PACKAGE(Boost 1.33.0 REQUIRED)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
|
######################################################################################
|
||||||
|
|
||||||
SET(RESOURCES
|
|
||||||
cma_sa.param
|
######################################################################################
|
||||||
plot.py
|
### 2) Include the sources
|
||||||
|
######################################################################################
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(
|
||||||
|
${PARADISEO_EO_SRC_DIR}/src
|
||||||
|
${PARADISEO_MO_SRC_DIR}/src
|
||||||
|
${PARADISEO_MOEO_SRC_DIR}/src
|
||||||
|
${PARADISEO_PEO_SRC_DIR}/src
|
||||||
|
${CMAKE_SOURCE_DIR}/src
|
||||||
|
${CMAKE_SOURCE_DIR}/lib/eometah
|
||||||
|
${CMAKE_SOURCE_DIR}/lib/nk-landscapes
|
||||||
|
${Boost_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
|
|
||||||
FOREACH(file ${RESOURCES})
|
######################################################################################
|
||||||
EXECUTE_PROCESS(
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/${file}
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${file}
|
|
||||||
)
|
|
||||||
ENDFOREACH(file)
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(cma_sa main.cpp)
|
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(cma_sa
|
######################################################################################
|
||||||
${Boost_LIBRARIES}
|
### 3) Define your target(s)
|
||||||
BOPO
|
######################################################################################
|
||||||
eoutils
|
|
||||||
pthread
|
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
|
||||||
moeo
|
|
||||||
eo
|
FILE(GLOB SOURCES *.cpp)
|
||||||
peo
|
|
||||||
rmc_mpi
|
ADD_LIBRARY(${PROJECT_NAME} STATIC ${SOURCES})
|
||||||
eometah
|
|
||||||
nklandscapes
|
# INSTALL(
|
||||||
BOPO
|
# TARGETS ${LIBRARY_OUTPUT_PATH}/lib${PROJECT_NAME}.a
|
||||||
#${MPICH2_LIBRARIES}
|
# DESTINATION lib
|
||||||
${LIBXML2_LIBRARIES}
|
# COMPONENT libraries
|
||||||
${MPI_LIBRARIES}
|
# )
|
||||||
)
|
|
||||||
|
######################################################################################
|
||||||
|
|
|
||||||
Reference in a new issue