Skip to content

CMake-ify git2nrnversion_h.sh, remove nrnversion.sh #3473

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion bldnrnmacpkg.sh
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,11 @@ NRN_BLD=$NRN_SRC/build
NSRC=$NRN_SRC
export NSRC

if [ "$(git -C "${NRN_SRC}" rev-parse --is-shallow-repository)" = 'true' ]; then
printf 'ERROR: repository at path %s is shallow, please unshallow it (possibly via `git [pull|fetch] --unshallow`)\n' "${NRN_SRC}"
exit 1
fi

NRN_INSTALL=/Applications/NEURON
export PATH=$NRN_INSTALL/bin:$PATH

Expand Down Expand Up @@ -151,7 +156,7 @@ for i in $args ; do
chk $i
done

describe="`sh $NRN_SRC/nrnversion.sh describe`"
describe="$(git -C "${NRN_SRC}" describe)"
macos=macos${MACOSX_DEPLOYMENT_TARGET}
PACKAGE_FULL_NAME=nrn-${describe}-${mac_platform}-${PYVS}.pkg
PACKAGE_FILE_NAME=$NRN_BLD/src/mac/build/NEURON.pkg
Expand Down
59 changes: 59 additions & 0 deletions cmake/MacroHelper.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -282,3 +282,62 @@ function(install_list FILE_LIST INSTALL_PREFIX)
install(FILES "${file_abs}" DESTINATION "${INSTALL_PREFIX}/${file_dir}")
endforeach()
endfunction()

# Replacement for git2nrnversion_h.sh. Add git information to `target` with scope `scope` (PRIVATE,
# PUBLIC, or INTERFACE)
function(add_cpp_git_information target scope)
find_program(GIT git)
if(EXISTS "${PROJECT_SOURCE_DIR}/.git" AND GIT)
execute_process(
COMMAND "${GIT}" -C "${PROJECT_SOURCE_DIR}" describe
OUTPUT_VARIABLE GIT_DESCRIBE
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)

execute_process(
COMMAND "${GIT}" -C "${PROJECT_SOURCE_DIR}" rev-parse --abbrev-ref HEAD
OUTPUT_VARIABLE GIT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)

execute_process(
COMMAND "${GIT}" -C "${PROJECT_SOURCE_DIR}" -c log.showSignature=false log --format=%h -n 1
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)

execute_process(
COMMAND "${GIT}" -C "${PROJECT_SOURCE_DIR}" -c log.showSignature=false log --format=%cd -n 1
--date=short
OUTPUT_VARIABLE GIT_DATE
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)

execute_process(
COMMAND "${GIT}" -C "${PROJECT_SOURCE_DIR}" status -s -uno --porcelain
OUTPUT_VARIABLE GIT_STATUS
ERROR_QUIET)

if(GIT_STATUS)
set(GIT_MODIFIED "+")
else()
set(GIT_MODIFIED "")
endif()

set(GIT_CHANGESET "${GIT_COMMIT_HASH}${GIT_MODIFIED}")
set(GIT_DESCRIBE_FULL "${GIT_DESCRIBE}${GIT_MODIFIED}")

else()
string(TIMESTAMP BUILD_TIME "%Y-%m-%d-%H:%M:%S")
set(GIT_DATE "Build Time: ${BUILD_TIME}")
set(GIT_BRANCH "unknown branch")
set(GIT_CHANGESET "unknown commit id")
set(GIT_DESCRIBE "${PROJECT_VERSION}.dev0")
set(GIT_DESCRIBE_FULL "${GIT_DESCRIBE}")
endif()

set(git_def_keys GIT_DATE GIT_BRANCH GIT_CHANGESET GIT_DESCRIBE GIT_DESCRIBE_FULL)

set(processed_defs)
foreach(key IN LISTS git_def_keys)
list(APPEND processed_defs "${key}=\"${${key}}\"")
endforeach()

target_compile_definitions(${target} ${scope} ${processed_defs})
endfunction()
4 changes: 1 addition & 3 deletions cmake/NeuronFileLists.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,6 @@ set(NRNOC_FILE_LIST
treeset.cpp
multicore.cpp)

set(NRNOC_GENERATED_FILE_LIST nrnversion.h)

# =============================================================================
# Files in ivoc directory
# =============================================================================
Expand Down Expand Up @@ -436,7 +434,7 @@ set(NRN_PARALLEL_SRC_DIR ${PROJECT_SOURCE_DIR}/src/parallel)
# =============================================================================
nrn_create_file_list(NRN_OC_SRC_FILES ${NRN_OC_SRC_DIR} ${OC_FILE_LIST})
nrn_create_file_list(NRN_NRNOC_SRC_FILES ${NRN_NRNOC_SRC_DIR} ${NRNOC_FILE_LIST})
nrn_create_file_list(NRN_NRNOC_SRC_FILES ${NRN_NRNOC_BUILD_DIR} ${NRNOC_GENERATED_FILE_LIST})
nrn_create_file_list(NRN_NRNOC_SRC_FILES ${NRN_NRNOC_BUILD_DIR})
nrn_create_file_list(NRN_IVOC_SRC_FILES ${NRN_IVOC_SRC_DIR} ${IVOC_FILE_LIST})
nrn_create_file_list(NRN_NODEORDEROPTIM_SRC_FILES ${NRN_NODEORDEROPTIM_SRC_DIR}
${NODEORDEROPTIM_FILE_LIST})
Expand Down
31 changes: 0 additions & 31 deletions git2nrnversion_h.sh

This file was deleted.

49 changes: 0 additions & 49 deletions nrnversion.sh

This file was deleted.

2 changes: 0 additions & 2 deletions src/mac/activate-apps-cmake.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ ivlibdir=$4
NRN_UNIVERSAL_BUILD=$5
export CPU
export NRN_SRC
NSRC=$NRN_SRC
export NSRC #needed by nrnversion.sh

# Equivalent to install from the Makefile.am
S="modlunit.sh mknrndll.sh nrngui.sh neurondemo.sh mos2nrn.sh"
Expand Down
17 changes: 1 addition & 16 deletions src/nrniv/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -245,22 +245,6 @@ set(NRN_INCLUDE_DIRS
# =============================================================================
# Helper commands : generate various headers
# =============================================================================
# ~~~
# generate version information file
# nrnversion.h does not depend on another file but on the output of
# git2version_h.sh and nrnversion.h should only be changed if that output
# is different from the contents of nrnversion.h
# ~~~
add_custom_target(
nrnversion_h
COMMAND ${CMAKE_COMMAND} -E env PROJECT_VERSION=${PROJECT_VERSION} bash
${PROJECT_SOURCE_DIR}/git2nrnversion_h.sh ${PROJECT_SOURCE_DIR} > nrnversion.h.tmp
COMMAND ${CMAKE_COMMAND} -E copy_if_different nrnversion.h.tmp nrnversion.h
DEPENDS ${PROJECT_SOURCE_DIR}/git2nrnversion_h.sh
WORKING_DIRECTORY ${NRN_NRNOC_BUILD_DIR})

add_custom_command(OUTPUT ${NRN_NRNOC_BUILD_DIR}/nrnversion.h DEPENDS nrnversion_h)
add_dependencies(generated_source_files nrnversion_h)

# avoid error with nvector_serial.cpp for #include <../../../nrnconf.h>
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/src/sundials/shared)
Expand Down Expand Up @@ -412,6 +396,7 @@ include_directories(${NRN_INCLUDE_DIRS})
# =============================================================================
add_library(nrniv_lib ${NRN_LIBRARY_TYPE} ${NRN_NRNIV_LIB_SRC_FILES})
add_dependencies(nrniv_lib generated_source_files)
add_cpp_git_information(nrniv_lib PRIVATE)
target_link_libraries(nrniv_lib nrngnu)
target_link_libraries(nrniv_lib sparse13)
target_link_libraries(nrniv_lib fmt::fmt)
Expand Down
1 change: 0 additions & 1 deletion src/nrnoc/nrnversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#include "nrn_ansi.h"
#include "nrnassrt.h"
#include "nrnconfigargs.h"
#include "nrnversion.h"

#include <stdio.h>
#include <string.h>
Expand Down
Loading