CMakeLists.txt 4.08 KB
cmake_minimum_required(VERSION 2.6)

PROJECT(DDServer)

add_definitions( -DLINUX )
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/build/${CMAKE_BUILD_TYPE}/bin/)
set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/build/${CMAKE_BUILD_TYPE}/lib/)

if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
  #64 bits
  MESSAGE( STATUS "64 bits" )
  set(CMAKE_C_FLAGS_DEBUG "-ggdb -DLINUX -Dlinux -m64 -march=core2 -fPIC -D_REENTRANT -pthread")
  set(CMAKE_C_FLAGS_RELEASE "-DLINUX -Dlinux -m64 -march=core2 -fPIC -D_REENTRANT -pthread")
  set(USRLIB_DIR "/usr/lib64/:/usr/local/lib64/")
else( CMAKE_SIZEOF_VOID_P EQUAL 8 )
  #32 bits
  MESSAGE( STATUS "32 bits" )
  set(CMAKE_C_FLAGS_DEBUG "-ggdb -DLINUX -march=i686 -fPIC -Dlinux -D_REENTRANT -malign-double -pthread")
  set(CMAKE_C_FLAGS_DEBUG "-DLINUX -march=i686 -fPIC -Dlinux -D_REENTRANT -malign-double -pthread")
  set(USRLIB_DIR "/usr/lib/:/usr/local/lib/")
endif( CMAKE_SIZEOF_VOID_P EQUAL 8 )

set (USERLOCAL_ROOT "/usr/local/lib/")
if (EXISTS "$ENV{USERLOCAL_ROOT}")
    set(USERLOCAL_ROOT "$ENV{USERLOCAL_ROOT}")
    message("USERLOCAL_ROOT forced to ${USERLOCAL_ROOT}")
endif()

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")

find_package( Threads REQUIRED )
find_package( CRYPT REQUIRED )
find_package( NetCDF REQUIRED )
find_package( DDClient REQUIRED )
find_package( CDF REQUIRED )
find_package( LibXML2 REQUIRED ) 

get_filename_component(NETCDFLIB_DIR ${NETCDFLIBRARIES} PATH)
get_filename_component(DDCLIENTLIB_DIR ${DDCLIENTLIBRARIES} PATH)
set(DDSERVICE_URL $ENV{DDSERVICE_URL})
set(DDRESPATH $ENV{DDRESPATH})
set(DDBASEDATA "$ENV{DDBASEPATH}/DATA")
set(DDBASEINFO "$ENV{DDBASEPATH}/INFO")
set(PROXY_HOST $ENV{PROXY_HOST})
set(PROXY_USERPWD $ENV{PROXY_USERPWD})

configure_file (
 "${CMAKE_SOURCE_DIR}/scripts/DDServer.env.in"
 "${CMAKE_SOURCE_DIR}/scripts/DDServer.env"
)

configure_file (
 "${CMAKE_SOURCE_DIR}/src/DDSERVICES/SOAP/DDserverWeb_ini.php.in"
 "${CMAKE_SOURCE_DIR}/src/DDSERVICES/SOAP/DDserverWeb_ini.php"
)

configure_file (
 "${CMAKE_SOURCE_DIR}/src/DDSERVICES/SOAP/dd.wsdl.in"
 "${CMAKE_SOURCE_DIR}/src/DDSERVICES/SOAP/dd.wsdl"
)

MESSAGE( STATUS "Build DD_Server Project" )
add_subdirectory(src/SERVER)
add_subdirectory(src/DECODERS/ascii2nc)
add_subdirectory(src/DECODERS/cdf2nc)
add_subdirectory(src/DECODERS/cdfnew2nc)
add_subdirectory(src/DECODERS/nc2nc)
add_subdirectory(src/DECODERS/themis/esa2nc)
add_subdirectory(src/DECODERS/themis/esafull2nc)
add_subdirectory(src/DECODERS/themis/esamom2nc)
add_subdirectory(src/DECODERS/themis/fgm2nc)
add_subdirectory(src/DECODERS/themis/sst2nc)
add_subdirectory(src/DATA/TOOLS)
add_subdirectory(src/DDSERVICES/TOOLS)
add_subdirectory(tests)

install(FILES "scripts/StartServer" DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(FILES "scripts/DDServer.env" DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(FILES "scripts/AddLocalVI.sh" DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(FILES "scripts/UpdateInfoVI.sh" DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(FILES "scripts/RemoveVI.sh" DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(FILES "scripts/MakeRemoteProxy.sh" DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)

install(DIRECTORY "src/CALLEXT/" DESTINATION bin/CALLEXT)
install(DIRECTORY "src/DATA/MANAGER/" DESTINATION bin/DATAMANAGER)
install(DIRECTORY "src/DATA/TEMPLATES/" DESTINATION bin)
install(DIRECTORY "src/REMOTEDATA/" DESTINATION bin/REMOTEDATA)
install(DIRECTORY "src/DDSERVICES/SOAP/" DESTINATION DDService)
install(DIRECTORY "src/DDSERVICES/REST/" DESTINATION DDService)

install(FILES "src/DECODERS/cdf2nc/cdf_to_netcdf_mapping.dat" DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) 

SET(CMAKE_VERBOSE_MAKEFILE ON)