Skip to content

Commit

Permalink
Merge branch 'schemes'
Browse files Browse the repository at this point in the history
  • Loading branch information
pfultz2 committed Jun 18, 2018
2 parents 450dd4f + 416a3b2 commit 1491bb0
Show file tree
Hide file tree
Showing 7 changed files with 128 additions and 92 deletions.
54 changes: 32 additions & 22 deletions cget/cmake/autotools.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ include(CTest)
include(ProcessorCount)
ProcessorCount(AUTOTOOLS_JOBS)

# set(AUTOTOOLS_FLAGS)

find_program(MAKE_EXE make)
if(NOT MAKE_EXE)
message(FATAL_ERROR "Make build system not installed.")
Expand All @@ -28,12 +26,28 @@ macro(get_property_list VAR PROP)
get_directory_property(${VAR} ${PROP})
string(REPLACE ";" " " ${VAR} "${${VAR}}")
endmacro()
function(exec)
execute_process(${ARGN} RESULT_VARIABLE RESULT)
if(NOT RESULT EQUAL 0)
message(FATAL_ERROR "Process failed: ${ARGN}")
endif()
endfunction()
macro(preamble PREFIX)
# TODO: Adjust paths based on cross-compiling
set(${PREFIX}_PATH ${CMAKE_PREFIX_PATH} ${CMAKE_SYSTEM_PREFIX_PATH})
set(${PREFIX}_SYSTEM_PATH)
foreach(P ${CMAKE_PREFIX_PATH} ${CMAKE_SYSTEM_PREFIX_PATH})
foreach(P ${${PREFIX}_PATH})
list(APPEND ${PREFIX}_SYSTEM_PATH ${P}/bin)
endforeach()
# adjust_path(${PREFIX}_SYSTEM_PATH)
adjust_path(${PREFIX}_SYSTEM_PATH)

set(${PREFIX}_PKG_CONFIG_PATH)
foreach(P ${${PREFIX}_PATH})
foreach(SUFFIX lib lib64 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)
Expand Down Expand Up @@ -80,41 +94,37 @@ macro(preamble PREFIX)
string(STRIP "${${VAR}}" ${VAR})
endforeach()

# TODO: Check against the DEBUG_CONFIGURATIONS property
string(TOLOWER "${CMAKE_BUILD_TYPE}" BUILD_TYPE)
if(BUILD_TYPE STREQUAL "debug")
set(${PREFIX}_VARIANT "debug")
else()
set(${PREFIX}_VARIANT "release")
endif()

# TODO: Adjust pkgconfig path based on cross-compiling
set(${PREFIX}_ENV_COMMAND ${CMAKE_COMMAND} -E env
"CC=${CMAKE_C_COMPILER}"
"CXX=${CMAKE_CXX_COMPILER}"
"CFLAGS=${${PREFIX}_C_FLAGS}"
"CXXFLAGS=${${PREFIX}_CXX_FLAGS}"
"LDFLAGS=${${PREFIX}_LINK_FLAGS}"
"PATH=${${PREFIX}_SYSTEM_PATH}${PATH_SEP}$ENV{PATH}"
"PKG_CONFIG_PATH=${${PREFIX}_PKG_CONFIG_PATH}")
endmacro()
# preamble

preamble(AUTOTOOLS)
adjust_path(AUTOTOOLS_SYSTEM_PATH)

set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/build)
file(MAKE_DIRECTORY ${BUILD_DIR})

file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/autotools.cmake "
set(ENV{CC} ${CMAKE_C_COMPILER})
set(ENV{CXX} ${CMAKE_CXX_COMPILER})
set(ENV{CFLAGS} ${AUTOTOOLS_C_FLAGS})
set(ENV{CXXFLAGS} ${AUTOTOOLS_CXX_FLAGS})
set(ENV{LDFLAGS} ${AUTOTOOLS_LINK_FLAGS})

set(ENV{PATH} \"${AUTOTOOLS_SYSTEM_PATH}${PATH_SEP}\$ENV{PATH}\")
execute_process(COMMAND
${CMAKE_CURRENT_SOURCE_DIR}/configure
# TODO: Check flags of configure script
exec(COMMAND ${AUTOTOOLS_ENV_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}/configure
--prefix=${CMAKE_INSTALL_PREFIX}
${CONFIGURE_OPTIONS}
WORKING_DIRECTORY ${BUILD_DIR}
)
")

execute_process(COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/autotools.cmake)
WORKING_DIRECTORY ${BUILD_DIR})

add_custom_target(autotools ALL
COMMAND ${MAKE_EXE} -j ${AUTOTOOLS_JOBS}
Expand Down
38 changes: 31 additions & 7 deletions cget/cmake/boost.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,28 @@ macro(get_property_list VAR PROP)
get_directory_property(${VAR} ${PROP})
string(REPLACE ";" " " ${VAR} "${${VAR}}")
endmacro()
function(exec)
execute_process(${ARGN} RESULT_VARIABLE RESULT)
if(NOT RESULT EQUAL 0)
message(FATAL_ERROR "Process failed: ${ARGN}")
endif()
endfunction()
macro(preamble PREFIX)
# TODO: Adjust paths based on cross-compiling
set(${PREFIX}_PATH ${CMAKE_PREFIX_PATH} ${CMAKE_SYSTEM_PREFIX_PATH})
set(${PREFIX}_SYSTEM_PATH)
foreach(P ${CMAKE_PREFIX_PATH} ${CMAKE_SYSTEM_PREFIX_PATH})
foreach(P ${${PREFIX}_PATH})
list(APPEND ${PREFIX}_SYSTEM_PATH ${P}/bin)
endforeach()
# adjust_path(${PREFIX}_SYSTEM_PATH)
adjust_path(${PREFIX}_SYSTEM_PATH)

set(${PREFIX}_PKG_CONFIG_PATH)
foreach(P ${${PREFIX}_PATH})
foreach(SUFFIX lib lib64 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)
Expand Down Expand Up @@ -72,12 +88,23 @@ macro(preamble PREFIX)
string(STRIP "${${VAR}}" ${VAR})
endforeach()

# TODO: Check against the DEBUG_CONFIGURATIONS property
string(TOLOWER "${CMAKE_BUILD_TYPE}" BUILD_TYPE)
if(BUILD_TYPE STREQUAL "debug")
set(${PREFIX}_VARIANT "debug")
else()
set(${PREFIX}_VARIANT "release")
endif()

# TODO: Adjust pkgconfig path based on cross-compiling
set(${PREFIX}_ENV_COMMAND ${CMAKE_COMMAND} -E env
"CC=${CMAKE_C_COMPILER}"
"CXX=${CMAKE_CXX_COMPILER}"
"CFLAGS=${${PREFIX}_C_FLAGS}"
"CXXFLAGS=${${PREFIX}_CXX_FLAGS}"
"LDFLAGS=${${PREFIX}_LINK_FLAGS}"
"PATH=${${PREFIX}_SYSTEM_PATH}${PATH_SEP}$ENV{PATH}"
"PKG_CONFIG_PATH=${${PREFIX}_PKG_CONFIG_PATH}")
endmacro()
# preamble

Expand Down Expand Up @@ -241,17 +268,14 @@ set(BUILD_FLAGS
string(REPLACE ";" " " BUILD_FLAGS_STR "${BUILD_FLAGS}")

add_custom_target(boost ALL
COMMAND ${B2_EXE}
${BUILD_FLAGS}
COMMAND ${B2_ENV_COMMAND} ${B2_EXE} ${BUILD_FLAGS}
COMMENT "${B2_EXE} ${BUILD_FLAGS_STR}"
VERBATIM
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)

add_custom_target(boost_install
COMMAND ${B2_EXE}
${BUILD_FLAGS}
install
COMMAND ${B2_ENV_COMMAND} ${B2_EXE} ${BUILD_FLAGS} install
COMMENT "${B2_EXE} ${BUILD_FLAGS_STR} install"
VERBATIM
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
Expand Down
49 changes: 30 additions & 19 deletions cget/cmake/meson.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,28 @@ macro(get_property_list VAR PROP)
get_directory_property(${VAR} ${PROP})
string(REPLACE ";" " " ${VAR} "${${VAR}}")
endmacro()
function(exec)
execute_process(${ARGN} RESULT_VARIABLE RESULT)
if(NOT RESULT EQUAL 0)
message(FATAL_ERROR "Process failed: ${ARGN}")
endif()
endfunction()
macro(preamble PREFIX)
# TODO: Adjust paths based on cross-compiling
set(${PREFIX}_PATH ${CMAKE_PREFIX_PATH} ${CMAKE_SYSTEM_PREFIX_PATH})
set(${PREFIX}_SYSTEM_PATH)
foreach(P ${CMAKE_PREFIX_PATH} ${CMAKE_SYSTEM_PREFIX_PATH})
foreach(P ${${PREFIX}_PATH})
list(APPEND ${PREFIX}_SYSTEM_PATH ${P}/bin)
endforeach()
# adjust_path(${PREFIX}_SYSTEM_PATH)
adjust_path(${PREFIX}_SYSTEM_PATH)

set(${PREFIX}_PKG_CONFIG_PATH)
foreach(P ${${PREFIX}_PATH})
foreach(SUFFIX lib lib64 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)
Expand Down Expand Up @@ -92,18 +108,27 @@ macro(preamble PREFIX)
string(STRIP "${${VAR}}" ${VAR})
endforeach()

# TODO: Check against the DEBUG_CONFIGURATIONS property
string(TOLOWER "${CMAKE_BUILD_TYPE}" BUILD_TYPE)
if(BUILD_TYPE STREQUAL "debug")
set(${PREFIX}_VARIANT "debug")
else()
set(${PREFIX}_VARIANT "release")
endif()

# TODO: Adjust pkgconfig path based on cross-compiling
set(${PREFIX}_ENV_COMMAND ${CMAKE_COMMAND} -E env
"CC=${CMAKE_C_COMPILER}"
"CXX=${CMAKE_CXX_COMPILER}"
"CFLAGS=${${PREFIX}_C_FLAGS}"
"CXXFLAGS=${${PREFIX}_CXX_FLAGS}"
"LDFLAGS=${${PREFIX}_LINK_FLAGS}"
"PATH=${${PREFIX}_SYSTEM_PATH}${PATH_SEP}$ENV{PATH}"
"PKG_CONFIG_PATH=${${PREFIX}_PKG_CONFIG_PATH}")
endmacro()
# preamble

preamble(MESON)
list(APPEND MESON_SYSTEM_PATH ${NINJA_PATH})
adjust_path(MESON_SYSTEM_PATH)

set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/build)
file(MAKE_DIRECTORY ${BUILD_DIR})
Expand All @@ -118,22 +143,8 @@ set(MESON_CMD ${MESON_EXE}

string(REPLACE ";" " " MESON_COMMENT "${MESON_CMD}")

file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/meson.cmake "
set(ENV{CC} ${CMAKE_C_COMPILER})
set(ENV{CXX} ${CMAKE_CXX_COMPILER})
set(ENV{CFLAGS} ${MESON_C_FLAGS})
set(ENV{CXXFLAGS} ${MESON_CXX_FLAGS})
set(ENV{LDFLAGS} ${MESON_LINK_FLAGS})
set(ENV{PATH} \"${MESON_SYSTEM_PATH}${PATH_SEP}\$ENV{PATH}\")
execute_process(COMMAND ${MESON_CMD})
")

message("${MESON_COMMENT}")
execute_process(COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/meson.cmake)
exec(COMMAND ${MESON_ENV_COMMAND} ${MESON_CMD})

add_custom_target(meson ALL
COMMAND ${NINJA_EXE}
Expand Down
23 changes: 3 additions & 20 deletions tools/cmake/autotools.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ include(CTest)
include(ProcessorCount)
ProcessorCount(AUTOTOOLS_JOBS)

# set(AUTOTOOLS_FLAGS)

find_program(MAKE_EXE make)
if(NOT MAKE_EXE)
message(FATAL_ERROR "Make build system not installed.")
Expand All @@ -18,31 +16,16 @@ endif()

@PREAMBLE@
preamble(AUTOTOOLS)
adjust_path(AUTOTOOLS_SYSTEM_PATH)

set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/build)
file(MAKE_DIRECTORY ${BUILD_DIR})

file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/autotools.cmake "
set(ENV{CC} ${CMAKE_C_COMPILER})
set(ENV{CXX} ${CMAKE_CXX_COMPILER})
set(ENV{CFLAGS} ${AUTOTOOLS_C_FLAGS})
set(ENV{CXXFLAGS} ${AUTOTOOLS_CXX_FLAGS})
set(ENV{LDFLAGS} ${AUTOTOOLS_LINK_FLAGS})

set(ENV{PATH} \"${AUTOTOOLS_SYSTEM_PATH}${PATH_SEP}\$ENV{PATH}\")
execute_process(COMMAND
${CMAKE_CURRENT_SOURCE_DIR}/configure
# TODO: Check flags of configure script
exec(COMMAND ${AUTOTOOLS_ENV_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}/configure
--prefix=${CMAKE_INSTALL_PREFIX}
${CONFIGURE_OPTIONS}
WORKING_DIRECTORY ${BUILD_DIR}
)
")

execute_process(COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/autotools.cmake)
WORKING_DIRECTORY ${BUILD_DIR})

add_custom_target(autotools ALL
COMMAND ${MAKE_EXE} -j ${AUTOTOOLS_JOBS}
Expand Down
7 changes: 2 additions & 5 deletions tools/cmake/boost.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -169,17 +169,14 @@ set(BUILD_FLAGS
string(REPLACE ";" " " BUILD_FLAGS_STR "${BUILD_FLAGS}")

add_custom_target(boost ALL
COMMAND ${B2_EXE}
${BUILD_FLAGS}
COMMAND ${B2_ENV_COMMAND} ${B2_EXE} ${BUILD_FLAGS}
COMMENT "${B2_EXE} ${BUILD_FLAGS_STR}"
VERBATIM
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)

add_custom_target(boost_install
COMMAND ${B2_EXE}
${BUILD_FLAGS}
install
COMMAND ${B2_ENV_COMMAND} ${B2_EXE} ${BUILD_FLAGS} install
COMMENT "${B2_EXE} ${BUILD_FLAGS_STR} install"
VERBATIM
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
Expand Down
18 changes: 1 addition & 17 deletions tools/cmake/meson.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ endforeach()

@PREAMBLE@
preamble(MESON)
list(APPEND MESON_SYSTEM_PATH ${NINJA_PATH})
adjust_path(MESON_SYSTEM_PATH)

set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/build)
file(MAKE_DIRECTORY ${BUILD_DIR})
Expand All @@ -46,22 +44,8 @@ set(MESON_CMD ${MESON_EXE}

string(REPLACE ";" " " MESON_COMMENT "${MESON_CMD}")

file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/meson.cmake "
set(ENV{CC} ${CMAKE_C_COMPILER})
set(ENV{CXX} ${CMAKE_CXX_COMPILER})
set(ENV{CFLAGS} ${MESON_C_FLAGS})
set(ENV{CXXFLAGS} ${MESON_CXX_FLAGS})
set(ENV{LDFLAGS} ${MESON_LINK_FLAGS})
set(ENV{PATH} \"${MESON_SYSTEM_PATH}${PATH_SEP}\$ENV{PATH}\")
execute_process(COMMAND ${MESON_CMD})
")

message("${MESON_COMMENT}")
execute_process(COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/meson.cmake)
exec(COMMAND ${MESON_ENV_COMMAND} ${MESON_CMD})

add_custom_target(meson ALL
COMMAND ${NINJA_EXE}
Expand Down

0 comments on commit 1491bb0

Please sign in to comment.