cmake: fix module define translation.

we can't check the options in config/eina.cmake as they were not
created at that point, instead we must have a "post" file that is
included after everything else is processed, options/targets all
exist and can be modified.
This commit is contained in:
Gustavo Sverzut Barbieri 2017-01-23 18:25:22 -02:00
parent 0f8a6d04ab
commit 5e294031de
3 changed files with 23 additions and 15 deletions

View File

@ -21,17 +21,6 @@ EFL_OPTION(ENABLE_VALGRIND "valgrind support" ${ENABLE_VALGRIND})
SET_GLOBAL(EINA_MODULE_TYPE_MP_PASS_THROUGH_DEFAULT "STATIC")
# TODO: change code to avoid these
if(EINA_MODULE_TYPE_MP_PASS_THROUGH STREQUAL "STATIC")
SET_GLOBAL(EINA_STATIC_BUILD_CHAINED_POOL 1)
endif()
if(EINA_MODULE_TYPE_MP_PASS_THROUGH STREQUAL "STATIC")
SET_GLOBAL(EINA_STATIC_BUILD_ONE_BIG 1)
endif()
if(EINA_MODULE_TYPE_MP_PASS_THROUGH STREQUAL "STATIC")
SET_GLOBAL(EINA_STATIC_BUILD_PASS_THROUGH 1)
endif()
#check for symbols in pthread
#TODO Make the definitions depending on the platform
set(CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
@ -68,7 +57,3 @@ else()
endif()
#Check if there is the alloca header
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/src/lib/eina/eina_config.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/src/lib/eina/eina_config.h)

View File

@ -726,6 +726,8 @@ function(EFL_LIB _target)
_EFL_LIB_PROCESS_MODULES_INTERNAL()
_EFL_LIB_PROCESS_TESTS_INTERNAL()
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/post/${_target}.cmake OPTIONAL)
LIST_APPEND_GLOBAL(EFL_ALL_LIBS ${_target})
endfunction()

21
cmake/post/eina.cmake Normal file
View File

@ -0,0 +1,21 @@
# TODO: change code to avoid these
if(EINA_MODULE_TYPE_MP_CHAINED STREQUAL "STATIC")
SET_GLOBAL(EINA_STATIC_BUILD_CHAINED_POOL 1)
else()
unset(EINA_STATIC_BUILD_CHAINED_POOL CACHE)
endif()
if(EINA_MODULE_TYPE_MP_ONE_BIG STREQUAL "STATIC")
SET_GLOBAL(EINA_STATIC_BUILD_ONE_BIG 1)
else()
unset(EINA_STATIC_BUILD_ONE_BIG CACHE)
endif()
if(EINA_MODULE_TYPE_MP_PASS_THROUGH STREQUAL "STATIC")
SET_GLOBAL(EINA_STATIC_BUILD_PASS_THROUGH 1)
else()
unset(EINA_STATIC_BUILD_PASS_THROUGH CACHE)
endif()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/src/lib/eina/eina_config.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/src/lib/eina/eina_config.h)