enabled iphreeqc cmake to be standalone

git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/trunk@9464 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
Scott R Charlton 2015-04-03 00:05:24 +00:00
parent f31a2c2679
commit 00f434dca9

View File

@ -1,43 +1,40 @@
cmake_minimum_required (VERSION 2.8) cmake_minimum_required (VERSION 2.8)
include(CheckLanguage)
check_language(Fortran)
if (CMAKE_Fortran_COMPILER)
enable_language(Fortran)
endif()
if (POLICY CMP0054)
cmake_policy(PUSH)
cmake_policy(SET CMP0054 OLD)
endif()
project (IPhreeqc CXX C) project (IPhreeqc CXX C)
if (POLICY CMP0054)
cmake_policy(POP) # check if this is the root project
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
set(STANDALONE_BUILD 1)
else()
set(STANDALONE_BUILD 0)
endif() endif()
### overide docdir on windows
##if(WIN32 AND NOT CMAKE_INSTALL_DOCDIR) # overide docdir on windows
## set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (doc)") if(WIN32 AND NOT CMAKE_INSTALL_DOCDIR)
## set(CMAKE_INSTALL_DOCDIR "doc") set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (doc)")
##endif() set(CMAKE_INSTALL_DOCDIR "doc")
endif()
# set standard directory locations
include(GNUInstallDirs)
# Fortran # Fortran
if (NOT IPHREEQC_BUILD_FORTRAN) if (STANDALONE_BUILD EQUAL 1)
if (NOT IPHREEQC_FORTRAN_TESTING)
if (NOT CMAKE_Fortran_COMPILER OR CMAKE_Fortran_COMPILER STREQUAL "CMAKE_Fortran_COMPILER-NOTFOUND") if (NOT CMAKE_Fortran_COMPILER OR CMAKE_Fortran_COMPILER STREQUAL "CMAKE_Fortran_COMPILER-NOTFOUND")
option (IPHREEQC_BUILD_FORTRAN "Build FORTRAN support" OFF) option (IPHREEQC_FORTRAN_TESTING "Build Fortran test" OFF)
else() else()
option (IPHREEQC_BUILD_FORTRAN "Build FORTRAN support" ON) option (IPHREEQC_FORTRAN_TESTING "Build Fortran test" ON)
endif() endif()
else() else()
if (IPHREEQC_BUILD_FORTRAN) if (IPHREEQC_FORTRAN_TESTING)
enable_language(Fortran) enable_language(Fortran)
##include(FortranCInterface) endif()
##FortranCInterface_HEADER(FC.h MACRO_NAMESPACE "FC_")
##FortranCInterface_VERIFY(CXX QUIET)
endif() endif()
endif() endif()
include(GNUInstallDirs)
# Disable deprecation warnings for standard C and STL functions in VS2005 # Disable deprecation warnings for standard C and STL functions in VS2005
# and later # and later
@ -80,7 +77,7 @@ src/phreeqcpp/dense.cpp
src/phreeqcpp/dense.h src/phreeqcpp/dense.h
src/phreeqcpp/dumper.cpp src/phreeqcpp/dumper.cpp
src/phreeqcpp/dumper.h src/phreeqcpp/dumper.h
src/phreeqcpp/dw.cpp #src/phreeqcpp/dw.cpp
src/phreeqcpp/gases.cpp src/phreeqcpp/gases.cpp
src/phreeqcpp/global_structures.h src/phreeqcpp/global_structures.h
src/phreeqcpp/input.cpp src/phreeqcpp/input.cpp
@ -203,29 +200,20 @@ src/phreeqcpp/Utils.h
# compile Var.c as c++ # compile Var.c as c++
SET_SOURCE_FILES_PROPERTIES(src/Var.c PROPERTIES LANGUAGE CXX) SET_SOURCE_FILES_PROPERTIES(src/Var.c PROPERTIES LANGUAGE CXX)
### maybe always include? # always include fwrap files
##if (PHREEQCRM_BUILD_FORTRAN) SET(IPhreeqc_SOURCES
## SET(PhreeqcRM_SOURCES ${IPhreeqc_SOURCES}
## ${PhreeqcRM_SOURCES} src/fimpl.h
## RM_interface_F.cpp src/fwrap.cpp
## ) src/fwrap1.cpp
##endif () src/fwrap2.cpp
src/fwrap3.cpp
src/fwrap4.cpp
##if (IPHREEQC_BUILD_FORTRAN AND MSVC) src/fwrap5.cpp
## SET(IPhreeqc_SOURCES src/fwrap6.cpp
## ${IPhreeqc_SOURCES} src/fwrap7.cpp
## src/fwrap.cpp src/fwrap8.cpp
## src/fwrap1.cpp )
## src/fwrap2.cpp
## src/fwrap3.cpp
## src/fwrap4.cpp
## src/fwrap5.cpp
## src/fwrap6.cpp
## src/fwrap7.cpp
## src/fwrap8.cpp
## )
##endif ()
# setup include directories # setup include directories
include_directories("${PROJECT_SOURCE_DIR}") include_directories("${PROJECT_SOURCE_DIR}")
@ -238,28 +226,24 @@ OPTION(BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
SET(LIB_TYPE STATIC) SET(LIB_TYPE STATIC)
if (BUILD_SHARED_LIBS) if (BUILD_SHARED_LIBS)
SET(LIB_TYPE SHARED) SET(LIB_TYPE SHARED)
if (STANDALONE_BUILD EQUAL 1)
if (MSVC) if (MSVC)
OPTION(BUILD_CLR_LIBS "Build CLR Libraries" OFF) OPTION(BUILD_CLR_LIBS "Build CLR Libraries" OFF)
endif() endif()
endif()
endif() endif()
add_library(IPhreeqc ${LIB_TYPE} ${IPhreeqc_SOURCES}) add_library(IPhreeqc ${LIB_TYPE} ${IPhreeqc_SOURCES})
set_target_properties(IPhreeqc PROPERTIES DEBUG_POSTFIX "d") set_target_properties(IPhreeqc PROPERTIES DEBUG_POSTFIX "d")
SET(IPhreeqc_Headers SET(IPhreeqc_Headers
${PROJECT_SOURCE_DIR}/src/IPhreeqc.f.inc
${PROJECT_SOURCE_DIR}/src/IPhreeqc.f90.inc
${PROJECT_SOURCE_DIR}/src/IPhreeqc.h ${PROJECT_SOURCE_DIR}/src/IPhreeqc.h
${PROJECT_SOURCE_DIR}/src/IPhreeqc.hpp ${PROJECT_SOURCE_DIR}/src/IPhreeqc.hpp
${PROJECT_SOURCE_DIR}/src/IPhreeqcCallbacks.h ${PROJECT_SOURCE_DIR}/src/IPhreeqcCallbacks.h
${PROJECT_SOURCE_DIR}/src/Var.h ${PROJECT_SOURCE_DIR}/src/Var.h
) )
##if (PHREEQCRM_BUILD_FORTRAN)
## SET(PhreeqcRM_Headers
## ${PhreeqcRM_Headers}
## $(PROJECT_SOURCE_DIR)/RM_interface_F.h
## $(PROJECT_SOURCE_DIR)/IPhreeqcPhast/IPhreeqc/IPhreeqc.f90.inc
## $(PROJECT_SOURCE_DIR)/IPhreeqcPhast/IPhreeqc/IPhreeqc.f.inc
## )
##endif ()
# Setup references for /CLR # Setup references for /CLR
if (MSVC AND BUILD_SHARED_LIBS AND BUILD_CLR_LIBS) if (MSVC AND BUILD_SHARED_LIBS AND BUILD_CLR_LIBS)
@ -305,10 +289,12 @@ if (WIN32)
endif() endif()
# install # install
install(TARGETS IPhreeqc DESTINATION ${CMAKE_INSTALL_LIBDIR}) if (STANDALONE_BUILD EQUAL 1)
install(FILES ${IPhreeqc_Headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(TARGETS IPhreeqc DESTINATION ${CMAKE_INSTALL_LIBDIR})
if (BUILD_CLR_LIBS) install(FILES ${IPhreeqc_Headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (BUILD_CLR_LIBS)
install(FILES "${PROJECT_SOURCE_DIR}/src/phreeqcpp/ZedGraph.dll" DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(FILES "${PROJECT_SOURCE_DIR}/src/phreeqcpp/ZedGraph.dll" DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
endif() endif()
##IF(MSVC) ##IF(MSVC)
@ -329,7 +315,10 @@ endif()
## ) ## )
##ENDIF(MSVC) ##ENDIF(MSVC)
# tests
enable_testing()
add_subdirectory(tests) if (STANDALONE_BUILD EQUAL 1)
# tests
enable_testing()
add_subdirectory(tests)
endif()