Skip to content

Commit 4c67c5b

Browse files
committed
Enable versioning from 'LIEF_VERSION_ENV'
1 parent 27d406b commit 4c67c5b

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

CMakeLists.txt

+17-18
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,16 @@ include(ExternalProject)
2121
include(CMakePackageConfigHelpers)
2222

2323
find_package(Git)
24-
25-
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git"
26-
AND IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.git"
27-
AND Git_FOUND)
28-
29-
# Information from git
30-
# ====================
24+
if (DEFINED ENV{LIEF_VERSION_ENV})
25+
string(REGEX MATCHALL "([0-9]+)" VERSION_STRING "$ENV{LIEF_VERSION_ENV}")
26+
if (NOT VERSION_STRING)
27+
message(FATAL_ERROR "Invalid version")
28+
endif()
29+
list(GET VERSION_STRING 0 LIEF_VERSION_MAJOR)
30+
list(GET VERSION_STRING 1 LIEF_VERSION_MINOR)
31+
list(GET VERSION_STRING 2 LIEF_VERSION_PATCH)
32+
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git"
33+
AND IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.git" AND Git_FOUND)
3134
include(LIEFGit)
3235
else()
3336
set(LIEF_VERSION_MAJOR "0")
@@ -105,16 +108,12 @@ if(LIEF_INSTALL)
105108
include(GNUInstallDirs)
106109
set(CMAKE_INSTALL_LIBDIR "lib")
107110
else()
108-
if(WIN32)
109-
set(CMAKE_INSTALL_LIBDIR "lib")
110-
set(CMAKE_INSTALL_DATADIR "share")
111-
set(CMAKE_INSTALL_INCLUDEDIR "include")
112-
set(CMAKE_INSTALL_BINDIR "bin")
113-
set(CMAKE_INSTALL_DATAROOTDIR "share")
114-
message(STATUS "Setting installation destination on Windows to: ${CMAKE_INSTALL_PREFIX}")
115-
else()
116-
message(FATAL_ERROR "System not UNIX nor WIN32 - not implemented yet")
117-
endif()
111+
set(CMAKE_INSTALL_LIBDIR "lib")
112+
set(CMAKE_INSTALL_DATADIR "share")
113+
set(CMAKE_INSTALL_INCLUDEDIR "include")
114+
set(CMAKE_INSTALL_BINDIR "bin")
115+
set(CMAKE_INSTALL_DATAROOTDIR "share")
116+
message(STATUS "Setting installation destination to: ${CMAKE_INSTALL_PREFIX}")
118117
endif()
119118
endif()
120119

@@ -300,7 +299,7 @@ endif()
300299

301300
target_link_libraries(LIB_LIEF PRIVATE lief_spdlog)
302301

303-
if(ANDROID AND BUILD_SHARED_LIBS AND LIEF_LOGGING)
302+
if(ANDROID AND LIEF_LOGGING)
304303
target_link_libraries(LIB_LIEF PUBLIC log)
305304
endif()
306305

api/python/backend/versioning.py

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import subprocess
44
import re
55
import sys
6+
import os
67

78
from setup import ROOT_DIR
89
from scikit_build_core.settings.skbuild_read_settings import rich_print as _rich_print
@@ -113,6 +114,9 @@ def version_from_cmake(self) -> Optional[str]:
113114
return f"{major}.{minor}.{patch}"
114115

115116
def get_version(self) -> str:
117+
if version := os.getenv("LIEF_VERSION_ENV"):
118+
return version
119+
116120
if version := self.version_from_git():
117121
return version
118122

doc/sphinx/conf.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,10 @@ def get_breathe_projects_source():
102102
copyright = '2020, Quarkslab'
103103
author = 'Romain Thomas'
104104

105-
version = lief.__tag__ if lief.__is_tagged__ else lief.__version__
106-
release = lief.__version__
105+
LIEF_VERSION_ENV = "LIEF_VERSION"
106+
107+
version = os.getenv(LIEF_VERSION_ENV) or (lief.__tag__ if lief.__is_tagged__ else lief.__version__)
108+
release = os.getenv(LIEF_VERSION_ENV) or lief.__version__
107109
commit = lief.__commit__
108110

109111
language = "en"

0 commit comments

Comments
 (0)