Skip to content
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

dont use global include dir #89

Open
wants to merge 55 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
c52aa46
use osx sysroot
maddanio Jan 6, 2021
8ab8918
use requests instead of urlopen to avoid 403
maddanio Jan 6, 2021
7c11f74
use requests instead of urlopen to avoid 403
maddanio Jan 6, 2021
0051c34
drop dead import
maddanio Jan 7, 2021
70e0574
drop ssl import
maddanio Jan 7, 2021
fa9af07
use click progressbar
maddanio Jan 7, 2021
a619e89
Merge branch 'master' into nourlopen
maddanio Jan 7, 2021
0a69079
handle download error
maddanio Jan 7, 2021
21cd83a
dont use global include dir
maddanio Jan 8, 2021
9e9c919
implement simple package hashing
maddanio Jan 8, 2021
37a64d2
implement simple package hashing
maddanio Jan 8, 2021
c004339
zip builds to cache
maddanio Jan 8, 2021
c18ce38
Merge branch 'build_cache' into master
maddanio Jan 8, 2021
8dcd3ab
Revert "dont use global include dir"
maddanio Jan 11, 2021
4048bcf
make global include dir optional
maddanio Jan 11, 2021
dcb990f
add dirhash dependency
maddanio Jan 11, 2021
4366aff
add dirhash dependency
maddanio Jan 11, 2021
0ddf426
get builds from cache if possible
maddanio Jan 11, 2021
90015b2
lock cache
maddanio Jan 11, 2021
0d0d854
Merge branch 'build_cache' into master
maddanio Jan 11, 2021
41bd679
make build cache optional
maddanio Jan 11, 2021
674f357
Merge branch 'build_cache' into master
maddanio Jan 11, 2021
b14ce52
Merge remote-tracking branch 'origin/isolation' into master
maddanio Jan 11, 2021
4478066
propagate build cache setting to dependencies
maddanio Jan 11, 2021
936ca1e
Merge branch 'build_cache' into master
maddanio Jan 11, 2021
e5021aa
allow fast path cached builds by ignoring in source deps
maddanio Jan 11, 2021
3d2fcd1
Merge branch 'build_cache' into master
maddanio Jan 11, 2021
7e17de7
preserve recipe in package source for hashing
maddanio Jan 12, 2021
72c0eaf
prevent cache access from crashing
maddanio Jan 12, 2021
4247383
show non matching hash value
maddanio Jan 12, 2021
dfc28db
add option to autotools.cmake to run autogen.sh
maddanio Jan 12, 2021
12becfb
add optional boost bootstrap args
maddanio Jan 13, 2021
887b08d
stable setting of python exe for boost
maddanio Jan 14, 2021
b03e046
preserve file permissions in unzip
maddanio Jan 14, 2021
c60ca42
fix python syntax
maddanio Jan 14, 2021
7011815
fix boost.cmake
maddanio Jan 14, 2021
8ee6cf4
support cmake < 3.19
maddanio Jan 14, 2021
e723cf0
fix boost python discovery
maddanio Jan 14, 2021
a41cd2c
find python by absolute path for boost
maddanio Jan 14, 2021
1679edc
use top level bootstrap in boost.cmake
maddanio Jan 14, 2021
750aab1
dont overwrite linker flags repeatedly
maddanio Jan 15, 2021
de35535
remove debug log
maddanio Jan 18, 2021
3bd0bed
move debug out to log
maddanio Jan 18, 2021
5e754d2
double python hint for boost on osx
maddanio Jan 18, 2021
4929807
emit final boost user-config
maddanio Jan 18, 2021
acf16d5
dont put space after -L
maddanio Jan 18, 2021
8fc1c29
fix build cache
maddanio Jan 22, 2021
bd0d22a
use full python path for bjam
maddanio Jan 22, 2021
bce0429
avoid package fetch if possible
maddanio Jan 22, 2021
a7c6fd5
fix uninitialized variable
maddanio Jan 22, 2021
8245bea
reduce meddling of build drivers with pkg config
maddanio Jan 22, 2021
7a4db1f
isolate packages
maddanio Jan 26, 2021
c58aaa2
actually return dependents
maddanio Jan 26, 2021
aed37d1
pass src dir to get_dependents
maddanio Jan 26, 2021
9a57805
fix defines passign
maddanio Jan 26, 2021
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
22 changes: 18 additions & 4 deletions cget/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ def w(obj, prefix, verbose, build_path, *args, **kwargs):
@click.option('-D', '--define', multiple=True, help="Extra configuration variables to pass to CMake")
@click.option('--shared', is_flag=True, help="Set toolchain to build shared libraries by default")
@click.option('--static', is_flag=True, help="Set toolchain to build static libraries by default")
def init_command(prefix, toolchain, cc, cxx, cflags, cxxflags, ldflags, std, define, shared, static):
@click.option('--no-global-include', is_flag=True, help="Don't use global include dir (required for -X header)")
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about naming this --disable-global-include?

def init_command(prefix, toolchain, cc, cxx, cflags, cxxflags, ldflags, std, define, shared, static, no_global_include):
""" Initialize install directory """
if shared and static:
click.echo("ERROR: shared and static are not supported together")
Expand All @@ -73,7 +74,9 @@ def init_command(prefix, toolchain, cc, cxx, cflags, cxxflags, ldflags, std, def
cxxflags=cxxflags,
ldflags=ldflags,
std=std,
defines=defines)
defines=defines,
no_global_include=no_global_include
)

@cli.command(name='install')
@use_prefix
Expand All @@ -87,8 +90,10 @@ def init_command(prefix, toolchain, cc, cxx, cflags, cxxflags, ldflags, std, def
@click.option('--debug', is_flag=True, help="Install debug version")
@click.option('--release', is_flag=True, help="Install release version")
@click.option('--insecure', is_flag=True, help="Don't use https urls")
@click.option('--use-build-cache', is_flag=True, help="Cache builds")
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't have the build cache changes.

@click.option('--recipe-deps-only', is_flag=True, help="only use dependencies from recipes (speeds up cached builds a lot)")
@click.argument('pkgs', nargs=-1, type=click.STRING)
def install_command(prefix, pkgs, define, file, test, test_all, update, generator, cmake, debug, release, insecure):
def install_command(prefix, pkgs, define, file, test, test_all, update, generator, cmake, debug, release, insecure, use_build_cache, recipe_deps_only):
""" Install packages """
if debug and release:
click.echo("ERROR: debug and release are not supported together")
Expand All @@ -102,7 +107,16 @@ def install_command(prefix, pkgs, define, file, test, test_all, update, generato
for pbu in util.flat([prefix.from_file(file), pbs]):
pb = pbu.merge_defines(define)
with prefix.try_("Failed to build package {}".format(pb.to_name()), on_fail=lambda: prefix.remove(pb)):
click.echo(prefix.install(pb, test=test, test_all=test_all, update=update, generator=generator, insecure=insecure))
click.echo(prefix.install(
pb,
test=test,
test_all=test_all,
update=update,
generator=generator,
insecure=insecure,
use_build_cache=use_build_cache,
recipe_deps_only=recipe_deps_only
))

@cli.command(name='ignore')
@use_prefix
Expand Down
34 changes: 16 additions & 18 deletions cget/cmake/autotools.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,6 @@ macro(preamble PREFIX)
endforeach()
adjust_path(${PREFIX}_SYSTEM_PATH)

set(${PREFIX}_PKG_CONFIG_PATH)
foreach(P ${PREFIX_PATH} ${PREFIX_SYSTEM_PATH})
foreach(SUFFIX lib lib${${PREFIX}_ADDRESS_MODEL} share)
list(APPEND ${PREFIX}_PKG_CONFIG_PATH ${P}/${SUFFIX}/pkgconfig)
endforeach()
endforeach()
adjust_path(${PREFIX}_PKG_CONFIG_PATH)

get_property_list(${PREFIX}_COMPILE_FLAGS COMPILE_OPTIONS)
get_directory_property(${PREFIX}_INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES)
foreach(DIR ${${PREFIX}_INCLUDE_DIRECTORIES})
Expand All @@ -86,11 +78,12 @@ macro(preamble PREFIX)
endif()
endforeach()
get_directory_property(${PREFIX}_LINK_DIRECTORIES LINK_DIRECTORIES)
get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)
foreach(LIB_DIR ${${PREFIX}_LINK_DIRECTORIES})
if(MSVC)
string(APPEND ${PREFIX}_LINK_FLAGS " /LIBPATH:${LIB_DIR}")
else()
string(APPEND ${PREFIX}_LINK_FLAGS " -L ${LIB_DIR}")
string(APPEND ${PREFIX}_LINK_FLAGS " -L${LIB_DIR}")
endif()
endforeach()

Expand All @@ -112,13 +105,11 @@ macro(preamble PREFIX)
set(${PREFIX}_LINK_FLAGS "${${PREFIX}_LINK_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
endif (APPLE)

get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)
if(BUILD_SHARED_LIBS)
string(APPEND ${PREFIX}_LINK_FLAGS " ${CMAKE_SHARED_LINKER_FLAGS}")
else()
string(APPEND ${PREFIX}_LINK_FLAGS " ${CMAKE_STATIC_LINKER_FLAGS}")
endif()
get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)

foreach(LANG C CXX)
foreach(DIR ${CMAKE_${LANG}_STANDARD_INCLUDE_DIRECTORIES})
Expand Down Expand Up @@ -146,14 +137,8 @@ macro(preamble PREFIX)

set(${PREFIX}_BASE_ENV_COMMAND ${CMAKE_COMMAND} -E env
"PATH=${${PREFIX}_SYSTEM_PATH}${PATH_SEP}$ENV{PATH}"
"PKG_CONFIG_PATH=${${PREFIX}_PKG_CONFIG_PATH}"
)

# TODO: Set also PKG_CONFIG_SYSROOT_DIR
if(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE STREQUAL "ONLY")
list(APPEND ${PREFIX}_BASE_ENV_COMMAND "PKG_CONFIG_LIBDIR=${${PREFIX}_PKG_CONFIG_PATH}")
endif()
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't skip setting pkg config paths. Either way, I would prefer these changes in a seperate PR.


set(${PREFIX}_ENV_COMMAND ${${PREFIX}_BASE_ENV_COMMAND}
"CC=${CMAKE_C_COMPILER}"
"CXX=${CMAKE_CXX_COMPILER}"
Expand Down Expand Up @@ -181,7 +166,19 @@ list(APPEND CONFIGURE_OPTIONS
)
endif()

execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/configure --help OUTPUT_VARIABLE AUTOTOOLS_AVAILABLE_OPTIONS)

set(AUTOTOOLS_RUN_AUTOGEN_SH Off CACHE BOOL "")
if (AUTOTOOLS_RUN_AUTOGEN_SH)
execute_process(
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/autogen.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif (AUTOTOOLS_RUN_AUTOGEN_SH)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be put in a seperate PR.


execute_process(
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/configure --help
OUTPUT_VARIABLE AUTOTOOLS_AVAILABLE_OPTIONS
)

if(AUTOTOOLS_AVAILABLE_OPTIONS MATCHES "--disable-option-checking")
set(AUTOTOOL_IMPLICIT_CONFIGURE_OPTIONS On CACHE BOOL "")
Expand All @@ -200,6 +197,7 @@ if(AUTOTOOL_IMPLICIT_CONFIGURE_OPTIONS)
endif()
endif()


message(STATUS "Configure options: ${CONFIGURE_OPTIONS}")

# TODO: Check flags of configure script
Expand Down
45 changes: 23 additions & 22 deletions cget/cmake/boost.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,6 @@ macro(preamble PREFIX)
endforeach()
adjust_path(${PREFIX}_SYSTEM_PATH)

set(${PREFIX}_PKG_CONFIG_PATH)
foreach(P ${PREFIX_PATH} ${PREFIX_SYSTEM_PATH})
foreach(SUFFIX lib lib${${PREFIX}_ADDRESS_MODEL} share)
list(APPEND ${PREFIX}_PKG_CONFIG_PATH ${P}/${SUFFIX}/pkgconfig)
endforeach()
endforeach()
adjust_path(${PREFIX}_PKG_CONFIG_PATH)

get_property_list(${PREFIX}_COMPILE_FLAGS COMPILE_OPTIONS)
get_directory_property(${PREFIX}_INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES)
foreach(DIR ${${PREFIX}_INCLUDE_DIRECTORIES})
Expand All @@ -79,11 +71,12 @@ macro(preamble PREFIX)
endif()
endforeach()
get_directory_property(${PREFIX}_LINK_DIRECTORIES LINK_DIRECTORIES)
get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)
foreach(LIB_DIR ${${PREFIX}_LINK_DIRECTORIES})
if(MSVC)
string(APPEND ${PREFIX}_LINK_FLAGS " /LIBPATH:${LIB_DIR}")
else()
string(APPEND ${PREFIX}_LINK_FLAGS " -L ${LIB_DIR}")
string(APPEND ${PREFIX}_LINK_FLAGS " -L${LIB_DIR}")
endif()
endforeach()

Expand All @@ -105,13 +98,11 @@ macro(preamble PREFIX)
set(${PREFIX}_LINK_FLAGS "${${PREFIX}_LINK_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
endif (APPLE)

get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)
if(BUILD_SHARED_LIBS)
string(APPEND ${PREFIX}_LINK_FLAGS " ${CMAKE_SHARED_LINKER_FLAGS}")
else()
string(APPEND ${PREFIX}_LINK_FLAGS " ${CMAKE_STATIC_LINKER_FLAGS}")
endif()
get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)

foreach(LANG C CXX)
foreach(DIR ${CMAKE_${LANG}_STANDARD_INCLUDE_DIRECTORIES})
Expand Down Expand Up @@ -139,14 +130,8 @@ macro(preamble PREFIX)

set(${PREFIX}_BASE_ENV_COMMAND ${CMAKE_COMMAND} -E env
"PATH=${${PREFIX}_SYSTEM_PATH}${PATH_SEP}$ENV{PATH}"
"PKG_CONFIG_PATH=${${PREFIX}_PKG_CONFIG_PATH}"
)

# TODO: Set also PKG_CONFIG_SYSROOT_DIR
if(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE STREQUAL "ONLY")
list(APPEND ${PREFIX}_BASE_ENV_COMMAND "PKG_CONFIG_LIBDIR=${${PREFIX}_PKG_CONFIG_PATH}")
endif()

set(${PREFIX}_ENV_COMMAND ${${PREFIX}_BASE_ENV_COMMAND}
"CC=${CMAKE_C_COMPILER}"
"CXX=${CMAKE_CXX_COMPILER}"
Expand Down Expand Up @@ -234,24 +219,40 @@ using ${BOOST_TOOLCHAIN} : ${B2_TOOLCHAIN_VERSION} : \"${B2_COMPILER}\" :
${SEARCH_PATHS}
;
")

set(BOOST_PYTHON "" CACHE STRING "python executable to use for boost build")
set(BOOST_BOOTSTRAP_ARGS "" CACHE STRING "additional arguments to boost bootstrap")

if (BOOST_PYTHON)
find_program(BOOST_PYTHON_FOUND ${BOOST_PYTHON} REQUIRED)
get_filename_component(BOOST_PYTHON_FOUND_REAL "${BOOST_PYTHON_FOUND}" REALPATH)
message(STATUS "found python: '${BOOST_PYTHON_FOUND}' -> '${BOOST_PYTHON_FOUND_REAL}'")
set(B2_CONFIG_CONTENT "${B2_CONFIG_CONTENT}
using python : : ${BOOST_PYTHON_FOUND_REAL} ;
")
endif (BOOST_PYTHON)

message("${B2_CONFIG_CONTENT}")

file(WRITE ${B2_CONFIG} "${B2_CONFIG_CONTENT}")

find_program(B2_EXE b2)
if(NOT ${B2_EXE})
if (BOOST_PYTHON)
set(BOOST_BOOTSTRAP_PYTHON_ARG "--with-python=${BOOST_PYTHON_FOUND_REAL}")
endif (BOOST_PYTHON)
if(CMAKE_HOST_WIN32)
add_custom_target(bootstrap
COMMAND cmd /c ${CMAKE_CURRENT_SOURCE_DIR}/tools/build/bootstrap.bat
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tools/build/
COMMAND cmd /c ${CMAKE_CURRENT_SOURCE_DIR}/bootstrap.bat ${BOOST_BOOTSTRAP_ARGS} ${BOOST_BOOTSTRAP_PYTHON_ARG}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
set(B2_EXE "${CMAKE_CURRENT_SOURCE_DIR}/tools/build/b2.exe")
else()
add_custom_target(bootstrap
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tools/build/bootstrap.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tools/build/
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bootstrap.sh ${BOOST_BOOTSTRAP_ARGS} ${BOOST_BOOTSTRAP_PYTHON_ARG}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
set(B2_EXE "${CMAKE_CURRENT_SOURCE_DIR}/tools/build/b2")
set(B2_EXE "${CMAKE_CURRENT_SOURCE_DIR}/b2")
endif()
install(PROGRAMS ${B2_EXE} DESTINATION bin)
endif()
Expand Down
19 changes: 2 additions & 17 deletions cget/cmake/make.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,6 @@ macro(preamble PREFIX)
endforeach()
adjust_path(${PREFIX}_SYSTEM_PATH)

set(${PREFIX}_PKG_CONFIG_PATH)
foreach(P ${PREFIX_PATH} ${PREFIX_SYSTEM_PATH})
foreach(SUFFIX lib lib${${PREFIX}_ADDRESS_MODEL} share)
list(APPEND ${PREFIX}_PKG_CONFIG_PATH ${P}/${SUFFIX}/pkgconfig)
endforeach()
endforeach()
adjust_path(${PREFIX}_PKG_CONFIG_PATH)

get_property_list(${PREFIX}_COMPILE_FLAGS COMPILE_OPTIONS)
get_directory_property(${PREFIX}_INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES)
foreach(DIR ${${PREFIX}_INCLUDE_DIRECTORIES})
Expand All @@ -84,11 +76,12 @@ macro(preamble PREFIX)
endif()
endforeach()
get_directory_property(${PREFIX}_LINK_DIRECTORIES LINK_DIRECTORIES)
get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)
foreach(LIB_DIR ${${PREFIX}_LINK_DIRECTORIES})
if(MSVC)
string(APPEND ${PREFIX}_LINK_FLAGS " /LIBPATH:${LIB_DIR}")
else()
string(APPEND ${PREFIX}_LINK_FLAGS " -L ${LIB_DIR}")
string(APPEND ${PREFIX}_LINK_FLAGS " -L${LIB_DIR}")
endif()
endforeach()

Expand All @@ -110,13 +103,11 @@ macro(preamble PREFIX)
set(${PREFIX}_LINK_FLAGS "${${PREFIX}_LINK_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
endif (APPLE)

get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)
if(BUILD_SHARED_LIBS)
string(APPEND ${PREFIX}_LINK_FLAGS " ${CMAKE_SHARED_LINKER_FLAGS}")
else()
string(APPEND ${PREFIX}_LINK_FLAGS " ${CMAKE_STATIC_LINKER_FLAGS}")
endif()
get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)

foreach(LANG C CXX)
foreach(DIR ${CMAKE_${LANG}_STANDARD_INCLUDE_DIRECTORIES})
Expand Down Expand Up @@ -144,14 +135,8 @@ macro(preamble PREFIX)

set(${PREFIX}_BASE_ENV_COMMAND ${CMAKE_COMMAND} -E env
"PATH=${${PREFIX}_SYSTEM_PATH}${PATH_SEP}$ENV{PATH}"
"PKG_CONFIG_PATH=${${PREFIX}_PKG_CONFIG_PATH}"
)

# TODO: Set also PKG_CONFIG_SYSROOT_DIR
if(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE STREQUAL "ONLY")
list(APPEND ${PREFIX}_BASE_ENV_COMMAND "PKG_CONFIG_LIBDIR=${${PREFIX}_PKG_CONFIG_PATH}")
endif()

set(${PREFIX}_ENV_COMMAND ${${PREFIX}_BASE_ENV_COMMAND}
"CC=${CMAKE_C_COMPILER}"
"CXX=${CMAKE_CXX_COMPILER}"
Expand Down
19 changes: 2 additions & 17 deletions cget/cmake/meson.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,6 @@ macro(preamble PREFIX)
endforeach()
adjust_path(${PREFIX}_SYSTEM_PATH)

set(${PREFIX}_PKG_CONFIG_PATH)
foreach(P ${PREFIX_PATH} ${PREFIX_SYSTEM_PATH})
foreach(SUFFIX lib lib${${PREFIX}_ADDRESS_MODEL} share)
list(APPEND ${PREFIX}_PKG_CONFIG_PATH ${P}/${SUFFIX}/pkgconfig)
endforeach()
endforeach()
adjust_path(${PREFIX}_PKG_CONFIG_PATH)

get_property_list(${PREFIX}_COMPILE_FLAGS COMPILE_OPTIONS)
get_directory_property(${PREFIX}_INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES)
foreach(DIR ${${PREFIX}_INCLUDE_DIRECTORIES})
Expand All @@ -113,11 +105,12 @@ macro(preamble PREFIX)
endif()
endforeach()
get_directory_property(${PREFIX}_LINK_DIRECTORIES LINK_DIRECTORIES)
get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)
foreach(LIB_DIR ${${PREFIX}_LINK_DIRECTORIES})
if(MSVC)
string(APPEND ${PREFIX}_LINK_FLAGS " /LIBPATH:${LIB_DIR}")
else()
string(APPEND ${PREFIX}_LINK_FLAGS " -L ${LIB_DIR}")
string(APPEND ${PREFIX}_LINK_FLAGS " -L${LIB_DIR}")
endif()
endforeach()

Expand All @@ -139,13 +132,11 @@ macro(preamble PREFIX)
set(${PREFIX}_LINK_FLAGS "${${PREFIX}_LINK_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
endif (APPLE)

get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)
if(BUILD_SHARED_LIBS)
string(APPEND ${PREFIX}_LINK_FLAGS " ${CMAKE_SHARED_LINKER_FLAGS}")
else()
string(APPEND ${PREFIX}_LINK_FLAGS " ${CMAKE_STATIC_LINKER_FLAGS}")
endif()
get_property_list(${PREFIX}_LINK_FLAGS LINK_FLAGS)

foreach(LANG C CXX)
foreach(DIR ${CMAKE_${LANG}_STANDARD_INCLUDE_DIRECTORIES})
Expand Down Expand Up @@ -173,14 +164,8 @@ macro(preamble PREFIX)

set(${PREFIX}_BASE_ENV_COMMAND ${CMAKE_COMMAND} -E env
"PATH=${${PREFIX}_SYSTEM_PATH}${PATH_SEP}$ENV{PATH}"
"PKG_CONFIG_PATH=${${PREFIX}_PKG_CONFIG_PATH}"
)

# TODO: Set also PKG_CONFIG_SYSROOT_DIR
if(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE STREQUAL "ONLY")
list(APPEND ${PREFIX}_BASE_ENV_COMMAND "PKG_CONFIG_LIBDIR=${${PREFIX}_PKG_CONFIG_PATH}")
endif()

set(${PREFIX}_ENV_COMMAND ${${PREFIX}_BASE_ENV_COMMAND}
"CC=${CMAKE_C_COMPILER}"
"CXX=${CMAKE_CXX_COMPILER}"
Expand Down
8 changes: 7 additions & 1 deletion cget/package.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import base64, copy, argparse, six
import base64, copy, argparse, six, dirhash, hashlib

def encode_url(url):
x = six.b(url[url.find('://')+3:])
Expand Down Expand Up @@ -31,6 +31,12 @@ def get_src_dir(self):
return self.url[7:] # Remove "file://"
raise TypeError()

def calc_hash(self):
if self.recipe:
return dirhash.dirhash(self.recipe, "sha1")
elif self.url:
return hashlib.sha1(self.url.encode("utf-8")).hexdigest()
raise Exception("no url or recipe: %s" % self.__dict__)

def fname_to_pkg(fname):
if fname.startswith('_url_'): return PackageSource(name=decode_url(fname), fname=fname)
Expand Down
Loading