Skip to content
Snippets Groups Projects
Commit 901f5d57 authored by Whitney Armstrong's avatar Whitney Armstrong
Browse files

Cleaned up auto build process for PODD

	modified:   CMakeLists.txt
	modified:   cmake/HCANAConfig.cmake.in
	modified:   external/CMakeLists.txt
	modified:   external/PODD.CMakeLists.txt
	modified:   src/CMakeLists.txt
parent a946639c
No related branches found
No related tags found
No related merge requests found
......@@ -12,7 +12,11 @@ set(CMAKE_MODULE_PATH
## OS Specific settings
include(cmake/os.cmake)
# provides variables for header hc_compiledata.h
## External projects: analyzer(PODD)
include(ExternalProject)
# provides variables for HallC header "hc_compiledata.h"
include(cmake/modules/CompileTimeInfo.cmake)
include(GNUInstallDirs)
......@@ -20,13 +24,34 @@ set(INSTALL_CONFIGDIR lib/hcana)
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX})
find_package(EXPAT REQUIRED COMPONENTS EXPAT )
find_package(Threads REQUIRED)
find_package(ZLIB REQUIRED)
include(ExternalProject)
add_subdirectory(external)
find_package(PODD REQUIRED)
# ---------------
# PODD
find_package(PODD)
#ExternalProject_Add(PODD_project
# GIT_REPOSITORY https://github.com/whit2333/analyzer.git
# GIT_TAG origin/testing
# SOURCE_DIR "${CMAKE_BINARY_DIR}/hallac_PODD-src"
# BINARY_DIR "${CMAKE_BINARY_DIR}/hallac_PODD-build"
# CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=@CMAKE_INSTALL_PREFIX@" "-DCMAKE_PREFIX_PATH=@CMAKE_INSTALL_PREFIX@"
# BUILD_COMMAND ${CMAKE_COMMAND} --build . -- -j4
# USES_TERMINAL_BUILD ON
# TEST_COMMAND ""
# LOG_DOWNLOAD ON
# )
if(NOT ${PODD_FOUND})
message(STATUS "PODD not found. Will download and build analyzer (PODD)")
add_subdirectory(external)
find_package(PODD)
#Rescan becomes a dummy target after first build
#this prevents cmake from rebuilding cache/projects on subsequent builds
#add_custom_target(Rescan)
endif()
#add_executable(testapp testapp.cpp )
#add_dependencies(testapp Rescan)
#if(${Beaengine_FOUND})
# target_link_libraries(testapp ${Beaengine_LIBRARY})
#endif()
list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS})
list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS}/etc/cmake)
......@@ -58,21 +83,30 @@ install(FILES
##############################################
# Installation
#Create a ConfigVersion.cmake file
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/HCANAConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY AnyNewerVersion
# Install and export targets
install(EXPORT HCANA-targets
FILE HCANATargets.cmake
NAMESPACE HCANA::
DESTINATION lib/hcana
)
set(TARGETS_INSTALL_PATH lib/hcana/HCANATargets.cmake)
configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/cmake/HCANAConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/HCANAConfig.cmake
INSTALL_DESTINATION ${INSTALL_CONFIGDIR}
PATH_VARS TARGETS_INSTALL_PATH
)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/HCANAConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY AnyNewerVersion
)
#Install the config, configversion and custom find modules
install(FILES
# ${CMAKE_CURRENT_LIST_DIR}/cmake/FindRapidJSON.cmake
......
......@@ -4,6 +4,9 @@ include("@PACKAGE_TARGETS_INSTALL_PATH@")
check_required_components(HCANA)
find_package(PODD REQUIRED)
message(STATUS "Found HCANA")
#get_filename_component(HCANA_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
#include(CMakeFindDependencyMacro)
#
......
cmake_minimum_required(VERSION 3.1)
#include(ExternalProject)
##############
## GFLAGS ##
##############
message(STATUS "Subproject: PODD...")
#message(STATUS "Subproject: PODD...")
# Download and unpack gflags at configure time
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/PODD.CMakeLists.txt
......@@ -21,20 +16,16 @@ execute_process(COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/PODD-download)
if(result)
message(FATAL_ERROR "Build step for PODD failed: ${result}")
message(FATAL_ERROR "Download step for exteranl PODD build failed: ${result}")
endif()
#set(GFLAGS_NAMESPACE "gflags")
#set(GFLAGS_INSTALL_STATIC_LIBS ON)
#set(GFLAGS_INSTALL_HEADERS ON)
#set(GFLAGS_IS_SUBPROJECT TRUE)
add_subdirectory(
${CMAKE_BINARY_DIR}/hallac_PODD-src
${CMAKE_BINARY_DIR}/hallac_PODD-build)
execute_process(COMMAND "rm -r *"
RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/PODD-download)
#execute_process(COMMAND "rm -r *"
# RESULT_VARIABLE result
# WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/PODD-download)
message(STATUS "Subproject: PODD...DONE")
cmake_minimum_required(VERSION 3.5)
# simplify variable expansion
cmake_policy(SET CMP0053 NEW)
cmake_policy(SET CMP0010 NEW)
#cmake_policy(SET CMP0053 NEW)
#cmake_policy(SET CMP0010 NEW)
project(PODD-download NONE)
......@@ -14,7 +14,10 @@ ExternalProject_Add(PODD_project
SOURCE_DIR "${CMAKE_BINARY_DIR}/hallac_PODD-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/hallac_PODD-build"
CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=@CMAKE_INSTALL_PREFIX@" "-DCMAKE_PREFIX_PATH=@CMAKE_INSTALL_PREFIX@"
BUILD_COMMAND ${CMAKE_COMMAND} --build . -- -j4
BUILD_COMMAND ${CMAKE_COMMAND} --build . -- -j4
USES_TERMINAL_BUILD ON
TEST_COMMAND ""
LOG_DOWNLOAD ON
)
ExternalProject_Add_StepTargets(PODD_project install)
cmake_minimum_required(VERSION 3.5)
set(HCANA_src
Scaler9001.cxx Scaler9250.cxx THcAerogel.cxx THcAerogelHit.cxx THcAnalyzer.cxx THcBCMCurrent.cxx THcCherenkov.cxx
THcCherenkovHit.cxx THcCoinTime.cxx THcConfigEvtHandler.cxx THcDC.cxx THcDCHit.cxx THcDCLookupTTDConv.cxx THcDCTimeToDistConv.cxx
......@@ -39,12 +40,13 @@ set(PCM_FILE ${CMAKE_CURRENT_BINARY_DIR}/HallCDict_rdict.pcm)
# SOVERSION "${lib_MAJOR_VERSION}"
# SUFFIX ".so")
ADD_CUSTOM_TARGET(HallC_ROOTDICTS DEPENDS ${HCANA_src} ${headers} include/HallC_LinkDef.h HallCDict.cxx)
add_custom_target(HallC_ROOTDICTS DEPENDS ${HCANA_src} ${headers} include/HallC_LinkDef.h HallCDict.cxx)
add_library(HallC SHARED
${HCANA_src} HallCDict.cxx
)
add_library(HCANA::HallC ALIAS HallC)
#add_library(HCANA::HallC ALIAS HallC)
#Set target properties
target_include_directories(HallC
......@@ -62,8 +64,8 @@ target_compile_options(HallC PRIVATE $<$<CXX_COMPILER_ID:GNU>:-DHAS_SSTREAM=1>)
target_link_libraries(HallC
PUBLIC ${ROOT_LIBRARIES}
PUBLIC HallA
PUBLIC dc
PUBLIC PODD::HallA
PUBLIC PODD::dc
)
#This is required so that the exported target has the name JSONUtils and not jsonutils
#set_target_properties(HallC PROPERTIES EXPORT_NAME hallC)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment