diff --git a/BornAgain.pro b/BornAgain.pro index 5e5cef1371836968de1074601df8483e09d9ec6c..bc1c23ddb3680a6fc11a868990fba716fb9ee1d7 100644 --- a/BornAgain.pro +++ b/BornAgain.pro @@ -18,8 +18,8 @@ SUBDIRS += Fit SUBDIRS += App } -SUBDIRS += Tests/FunctionalTests/TestCore -SUBDIRS += Tests/FunctionalTests/TestFit +#SUBDIRS += Tests/FunctionalTests/TestCore +#SUBDIRS += Tests/FunctionalTests/TestFit # compilation in lister order CONFIG += ordered diff --git a/CMakeLists.txt b/CMakeLists.txt index c22bb74e976f308c086a85f1abd7188723ebfd55..772205193083ade260016158b0bce212dc744df2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ project(BornAgain) if(NOT BORNAGAIN_PYTHON) set(BORNAGAIN_PYTHON ON) endif() -set(BORNAGAIN_APP ON) +set(BORNAGAIN_APP OFF) set(BORNAGAIN_GUI OFF) #--- Path for additional cmake modules --- @@ -40,3 +40,5 @@ endif() # functional tests (cmake; make check) add_subdirectory(Tests/FunctionalTests) +# packaging +#include(BornAgainCPack) diff --git a/Core/Samples/inc/Layer.h b/Core/Samples/inc/Layer.h index 767e6792426c0f85466d9a1a9beec086b2547c2e..4aefe75ca1a0593b9326a39fa42b947cfbc4c5d3 100644 --- a/Core/Samples/inc/Layer.h +++ b/Core/Samples/inc/Layer.h @@ -62,11 +62,11 @@ class BA_CORE_API_ Layer : public ICompositeSample virtual complex_t getRefractiveIndex() const; //! sets particle decoration - void setDecoration(IDecoration *decoration); - void setDecoration(const IDecoration &decoration); + virtual void setDecoration(IDecoration *decoration); + virtual void setDecoration(const IDecoration &decoration); //! returns particle decoration - const IDecoration* getDecoration() const { return mp_decoration; } + virtual const IDecoration* getDecoration() const { return mp_decoration; } //! Returns true if decoration is present virtual bool hasDWBASimulation() const { return (mp_decoration ? true : false); } diff --git a/cmake/modules/BornAgainCPack.cmake b/cmake/modules/BornAgainCPack.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9695eaa671f9cccdf566c95ca85f1ec913b98514 --- /dev/null +++ b/cmake/modules/BornAgainCPack.cmake @@ -0,0 +1,110 @@ +#--------------------------------------------------------------------------------------------------- +# RootCPack.cmake +# - basic setup for packaging ROOT using CTest +#--------------------------------------------------------------------------------------------------- + +set(BORNAGAIN_MAJOR_VERSION "0") +set(BORNAGAIN_MINOR_VERSION "8") +set(BORNAGAIN_PATCH_VERSION "1") + +set(ROOT_VERSION "${BORNAGAIN_MAJOR_VERSION}.${BORNAGAIN_MINOR_VERSION}.${BORNAGAIN_PATCH_VERSION}") + + +#--------------------------------------------------------------------------------------------------- +# Package up needed system libraries - only for WIN32? +# +include(InstallRequiredSystemLibraries) + +#---------------------------------------------------------------------------------------------------- +# General packaging setup - variable relavant to all package formats +# +set(CPACK_PACKAGE_DESCRIPTION "BornAgain project") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "BornAgain project") +#set(CPACK_PACKAGE_VENDOR "HEPSoft") +set(CPACK_PACKAGE_VERSION ${BORNAGAIN_VERSION}) +set(CPACK_PACKAGE_VERSION_MAJOR ${BORNAGAIN_MAJOR_VERSION}) +set(CPACK_PACKAGE_VERSION_MINOR ${BORNAGAIN_MINOR_VERSION}) +set(CPACK_PACKAGE_VERSION_PATCH ${BORNAGAIN_PATCH_VERSION}) + +#---Resource Files----------------------------------------------------------------------------------- +#configure_file(README/README README.txt COPYONLY) +#configure_file(LICENSE LICENSE.txt COPYONLY) +#set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_BINARY_DIR}/README.txt") +#set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_BINARY_DIR}/LICENSE.txt") +#set(CPACK_RESOURCE_FILE_README "${CMAKE_BINARY_DIR}/README.txt") + +#---Source package settings-------------------------------------------------------------------------- +set(CPACK_SOURCE_IGNORE_FILES + ${PROJECT_BINARY_DIR} + ${PROJECT_SOURCE_DIR}/tests + "~$" + "/CVS/" + "/.svn/" + "/\\\\\\\\.svn/" + "/.git/" + "/\\\\\\\\.git/" + "\\\\\\\\.swp$" + "\\\\\\\\.swp$" + "\\\\.swp" + "\\\\\\\\.#" + "/#" +) +set(CPACK_SOURCE_STRIP_FILES "") + +#---Binary package setup----------------------------------------------------------------------------- +set(CPACK_PACKAGE_RELOCATABLE True) +set(CPACK_PACKAGE_INSTALL_DIRECTORY "BornAgain ${BORNAGAIN_MAJOR_VERSION}.${BORNAGAIN_MINOR_VERSION}") +if(CMAKE_BUILD_TYPE STREQUAL Release) + set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${BORNAGAIN_VERSION}-${BORNAGAIN_ARCHITECTURE}") +else() + set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${BORNAGAIN_VERSION}-${BORNAGAIN_ARCHITECTURE}-${CMAKE_BUILD_TYPE}") +endif() +#set(CPACK_PACKAGE_EXECUTABLES "root" "ROOT") + +if(WIN32) + set(CPACK_GENERATOR "NSIS;ZIP") + set(CPACK_SOURCE_GENERATOR "TGZ;ZIP") +elseif(APPLE) +# set(CPACK_GENERATOR "PackageMaker;TGZ") + set(CPACK_SOURCE_GENERATOR "TGZ;TBZ2") +else() + set(CPACK_GENERATOR "STGZ;TGZ") + set(CPACK_SOURCE_GENERATOR "TGZ;TBZ2;ZIP") +endif() + +#---------------------------------------------------------------------------------------------------- +# Finally, generate the CPack per-generator options file and include the +# base CPack configuration. +# +#configure_file(cmake/modules/CMakeCPackOptions.cmake.in CMakeCPackOptions.cmake @ONLY) +set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake) +include(CPack) + +#---------------------------------------------------------------------------------------------------- +# Define components and installation types (after CPack included!) +# +cpack_add_install_type(full DISPLAY_NAME "Full Installation") +cpack_add_install_type(minimal DISPLAY_NAME "Minimal Installation") +cpack_add_install_type(developer DISPLAY_NAME "Developer Installation") + +cpack_add_component(applications + DISPLAY_NAME "BornAgain Applications" + DESCRIPTION "BornAgain executables such as root.exe" + INSTALL_TYPES full minimal developer) + +cpack_add_component(libraries + DISPLAY_NAME "BornAgain Libraries" + DESCRIPTION "All BornAgain libraries and dictionaries" + INSTALL_TYPES full minimal developer) + +cpack_add_component(headers + DISPLAY_NAME "C++ Headers" + DESCRIPTION "These are needed to do any development" + INSTALL_TYPES full developer) + +cpack_add_component(tests + DISPLAY_NAME "BornAgain Tests and Tutorials" + DESCRIPTION "These are needed to do any test and tutorial" + INSTALL_TYPES full developer) + + diff --git a/cmake/modules/CheckCompiler.cmake b/cmake/modules/CheckCompiler.cmake index 2e38644f782cc038578d1145041e8a7b56b9ca49..95274acae5eeba28e3f817ef74ade800599cd4bf 100644 --- a/cmake/modules/CheckCompiler.cmake +++ b/cmake/modules/CheckCompiler.cmake @@ -80,6 +80,6 @@ endif() #---Print the final compiler flags-------------------------------------------------------------------- message(STATUS "BornAgain Platform: ${ROOT_PLATFORM}") -message(STATUS "BornAgain Architecture: ${ROOT_ARCHITECTURE}") +message(STATUS "BornAgain Architecture: ${BORNAGAIN_ARCHITECTURE}") message(STATUS "Build Type: ${CMAKE_BUILD_TYPE}") message(STATUS "Compiler Flags: ${CMAKE_CXX_FLAGS} ${ALL_CXX_FLAGS_${CMAKE_BUILD_TYPE}}") diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake index b0b14e2b25ac10f4605634a50c58aa93e4ebe897..efa89e98dee50dcb3fd2e1367a1f632f1dd0f16f 100644 --- a/cmake/modules/SearchInstalledSoftware.cmake +++ b/cmake/modules/SearchInstalledSoftware.cmake @@ -49,9 +49,9 @@ endif() if(BORNAGAIN_PYTHON) find_package(PythonInterp) + # important to find interpreter and libraries from same python version + set(PythonLibs_FIND_VERSION ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}) - set(PythonLibs_FIND_VERSION ${PYTHON_VERSION_STRING}) - find_package(PythonLibs REQUIRED) if(PYTHONLIBS_FOUND) include_directories(${PYTHON_INCLUDE_DIRS}) diff --git a/cmake/modules/SetUpLinux.cmake b/cmake/modules/SetUpLinux.cmake index 4e537ba4547486026ff0f947320e49b29c5b6633..9b5f2647090a5cf0ba9eae90808467318c567c9e 100644 --- a/cmake/modules/SetUpLinux.cmake +++ b/cmake/modules/SetUpLinux.cmake @@ -1,4 +1,4 @@ -set(ROOT_ARCHITECTURE linux) +set(BORNAGAIN_ARCHITECTURE linux) set(ROOT_PLATFORM linux) execute_process(COMMAND uname -m OUTPUT_VARIABLE SYSCTL_OUTPUT) @@ -9,9 +9,9 @@ if(${SYSCTL_OUTPUT} MATCHES x86_64) set(SPECIAL_CINT_FLAGS "-DG__64BIT") if(CMAKE_COMPILER_IS_GNUCXX) message(STATUS "Found GNU compiler collection") - set(ROOT_ARCHITECTURE linuxx8664gcc) + set(BORNAGAIN_ARCHITECTURE linuxx8664gcc) elseif(CMAKE_CXX_COMPILER_ID STREQUAL Intel) - set(ROOT_ARCHITECTURE linuxx8664icc) + set(BORNAGAIN_ARCHITECTURE linuxx8664icc) else() message(FATAL_ERROR "There is no Setup for this compiler up to now. Don't know what to do. Stop cmake at this point.") endif() @@ -21,9 +21,9 @@ else() set(SPECIAL_CINT_FLAGS "") if(CMAKE_COMPILER_IS_GNUCXX) message(STATUS "Found GNU compiler collection") - set(ROOT_ARCHITECTURE linux) + set(BORNAGAIN_ARCHITECTURE linux) elseif(CMAKE_CXX_COMPILER_ID STREQUAL Linux) - set(ROOT_ARCHITECTURE linuxicc) + set(BORNAGAIN_ARCHITECTURE linuxicc) else() message(FATAL_ERROR "There is no Setup for this compiler up to now. Don't know what to do. Stop cmake at this point.") endif() diff --git a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake index 190195b57b49890f67eefddd64b9dc1107c5282c..0a9c9256a67af092f097bbf70ca83599e96f507f 100644 --- a/cmake/modules/SetUpMacOS.cmake +++ b/cmake/modules/SetUpMacOS.cmake @@ -1,4 +1,4 @@ -set(ROOT_ARCHITECTURE macosx) +set(BORNAGAIN_ARCHITECTURE macosx) set(ROOT_PLATFORM macosx) set(SYSLIBS "-lm ${EXTRA_LDFLAGS} ${FINK_LDFLAGS} ${CMAKE_THREAD_LIBS_INIT} -ldl") @@ -27,7 +27,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin) execute_process(COMMAND /usr/sbin/sysctl machdep.cpu.extfeatures OUTPUT_VARIABLE SYSCTL_OUTPUT) if(${SYSCTL_OUTPUT} MATCHES 64) MESSAGE(STATUS "Found a 64bit system") - set(ROOT_ARCHITECTURE macosx64) + set(BORNAGAIN_ARCHITECTURE macosx64) SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -m64") SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -m64") diff --git a/cmake/modules/SetUpWindows.cmake b/cmake/modules/SetUpWindows.cmake index cbccae74a30f1dd762cb03ea54f27d55121f5c64..838080de00218bba4ad1a2d0fdf29c33cc144041 100644 --- a/cmake/modules/SetUpWindows.cmake +++ b/cmake/modules/SetUpWindows.cmake @@ -1,4 +1,4 @@ -set(ROOT_ARCHITECTURE win32) +set(BORNAGAIN_ARCHITECTURE win32) set(ROOT_PLATFORM win32) math(EXPR VC_MAJOR "${MSVC_VERSION} / 100")