PROJECT(PyHLA C CXX)
# SET(CMAKE_VERBOSE_MAKEFILE ON)

CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2)

SET(PACKAGE_NAME "PyHLA")
SET(PACKAGE_VERSION_MAJOR "1")
SET(PACKAGE_VERSION_MINOR "1")
SET(PACKAGE_VERSION_PATCH "1")
SET(PACKAGE_VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}")
  
MESSAGE(STATUS "Configuring ${PACKAGE_NAME} version ${PACKAGE_VERSION}")

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_INSTALL_PREFIX}/share/scripts)
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR})

FIND_PACKAGE(PythonLibs REQUIRED)
FIND_PACKAGE(PythonInterp REQUIRED)
EXECUTE_PROCESS(
    COMMAND "${PYTHON_EXECUTABLE}" "-V"
    ERROR_VARIABLE PYTHON_VERSION_STRING
    ERROR_STRIP_TRAILING_WHITESPACE)
STRING(
    REGEX REPLACE "[A-Za-z\ ]*([0-9]+\\.[0-9]+\\.*[0-9]*)" "\\1"
    PYTHON_VERSION "${PYTHON_VERSION_STRING}")
MESSAGE(STATUS "Using Python: ${PYTHON_VERSION}")
SET(PYTHON_NEEDED_VERSION "2.5")
IF("${PYTHON_VERSION}" VERSION_LESS "${PYTHON_NEEDED_VERSION}")
    message(FATAL_ERROR "You need at least Python ${PYTHON_NEEDED_VERSION}, found: ${PYTHON_VERSION}")
ENDIF("${PYTHON_VERSION}" VERSION_LESS "${PYTHON_NEEDED_VERSION}")

IF(NOT PYTHON_PACKAGES_PATH)
    EXECUTE_PROCESS(
        COMMAND "${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/GetPackagesPath.py"
        OUTPUT_VARIABLE PYTHON_PACKAGES_PATH)
    MESSAGE(STATUS "Found Python modules: ${PYTHON_PACKAGES_PATH}")
    SET(PYTHON_PACKAGES_PATH "${PYTHON_PACKAGES_PATH}"
        CACHE PATH "Path to Python modules.")
ENDIF(NOT PYTHON_PACKAGES_PATH)

# Use the PYTHON_PACKAGES_PATH as a default CMAKE_INSTALL_PREFIX
IF (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
    SET(CMAKE_INSTALL_PREFIX "${PYTHON_PACKAGES_PATH}"
        CACHE PATH "PyHLA install path prefix, prepended onto install directories." FORCE)
ENDIF (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
MESSAGE(STATUS "Python modules will be installed in: ${CMAKE_INSTALL_PREFIX}")

ADD_SUBDIRECTORY(doc)
ADD_SUBDIRECTORY(hla)
ADD_SUBDIRECTORY(test)

SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Python bindings for the Modeling and Simulation (M&S) High Level Architecture (HLA)")
SET(CPACK_PACKAGE_VENDOR "Petr Gotthard")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
SET(CPACK_PACKAGE_NAME ${PACKAGE_NAME})
SET(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})

SET(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})
SET(CPACK_PACKAGE_VERSION_MAJOR ${PACKAGE_VERSION_MAJOR})
SET(CPACK_PACKAGE_VERSION_MINOR ${PACKAGE_VERSION_MINOR})
SET(CPACK_PACKAGE_VERSION_PATCH ${PACKAGE_VERSION_PATCH})

IF (WIN32)
    SET(CPACK_SOURCE_GENERATOR "ZIP")
    SET(CPACK_GENERATOR "NSIS;ZIP")
    SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-win32-py${PYTHON_VERSION}")
ELSE (WIN32)
    SET(CPACK_SOURCE_GENERATOR "TGZ;ZIP")
    SET(CPACK_GENERATOR "TGZ;ZIP;RPM")
ENDIF (WIN32)

SET(CPACK_SOURCE_IGNORE_FILES
    "~" ".log" ".pdf" ".dvi" ".pyc" ".so" ".dll" ".zip" ".tar.gz" ".rpm"
    ".comFedRTI."
    "/.cvsignore" "/Makefile" "/CMakeCache.txt" "/cmake_install.cmake" "/CPack.*.cmake"
    "/Testing"
    "/CVS/" "/CMakeFiles/" "/_CPack_Packages/")

INCLUDE(CPack)

### Uninstall ###
configure_file("${CMAKE_HOME_DIRECTORY}/cmake_uninstall.cmake.in" "cmake_uninstall.cmake" IMMEDIATE @ONLY)
add_custom_target(uninstall "${CMAKE_COMMAND}" -P "cmake_uninstall.cmake")

# $Id: CMakeLists.txt,v 1.16 2011/09/19 12:57:04 erk Exp $
