-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #12 from kachsheev/dev
For v1.2
- Loading branch information
Showing
15 changed files
with
492 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
if((NOT CMAKE_CXX_COMPILER) AND (NOT CMAKE_C_COMPILER)) | ||
message(FATAL_ERROR "Only for C and/or C++") | ||
endif() | ||
|
||
include(Compilers/Gcc) | ||
include(Compilers/Clang) | ||
include(Compilers/Msvc) | ||
|
||
if(NOT CMAKE_RESOLVER_COMPILER_CURRENT_ID) | ||
message(FATAL_ERROR "Compiler is not supported") | ||
endif() | ||
|
||
set(FLAME_DEFINE_COMPILER_CURRENT | ||
CMAKE_RESOLVER_COMPILER_CURRENT=${CMAKE_RESOLVER_COMPILER_CURRENT_ID}) | ||
|
||
set(FLAME_FLAGS | ||
${FLAME_CXX_FLAG_NO_RTTI} | ||
${FLAME_CXX_FLAG_RTTI} | ||
${FLAME_CXX_FLAG_NO_EXCEPTIONS} | ||
${FLAME_CXX_FLAG_EXCEPTIONS} | ||
) | ||
foreach(flag ${FLAME_FLAGS}) | ||
string(REPLACE "${flag}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | ||
endforeach() | ||
|
||
function(flame_shared_set_export_symbols TARGET_NAME) | ||
if(CMAKE_RESOLVER_COMPILER_CURRENT_ID EQUAL CMAKE_RESOLVER_COMPILER_GCC_ID) | ||
flame_shared_set_export_symbols_gcc(${TARGET_NAME}) | ||
elseif(CMAKE_RESOLVER_COMPILER_CURRENT_ID EQUAL CMAKE_RESOLVER_COMPILER_CLANG_ID) | ||
flame_shared_set_export_symbols_clang(${TARGET_NAME}) | ||
elseif(CMAKE_RESOLVER_COMPILER_CURRENT_ID EQUAL CMAKE_RESOLVER_COMPILER_MSVC_ID) | ||
flame_shared_set_export_symbols_msvc(${TARGET_NAME}) | ||
endif() | ||
endfunction() | ||
|
||
function(flame_get_platform_defines OUT_LIST) | ||
set(FLAME_PLATFORM_FLAGS | ||
${FLAME_DEFINE_COMPILER_CURRENT} | ||
${FLAME_DEFINE_COMPILER_GCC} | ||
${FLAME_DEFINE_COMPILER_CLANG} | ||
${FLAME_DEFINE_COMPILER_MSVC} | ||
${FLAME_DEFINE_EXPORT} | ||
) | ||
set(${OUT_LIST} ${FLAME_PLATFORM_FLAGS} PARENT_SCOPE) | ||
endfunction() | ||
|
||
function(flame_get_rtti_defines RTTI_ON OUT_LIST) | ||
if(RTTI_ON) | ||
set(DEFINE_RTTI | ||
CMAKE_RESOLVER_RTTI_ENABLED=1 | ||
CMAKE_RESOLVER_RTTI_DISABLED=0) | ||
else() | ||
set(DEFINE_RTTI | ||
CMAKE_RESOLVER_RTTI_ENABLED=0 | ||
CMAKE_RESOLVER_RTTI_DISABLED=1) | ||
endif() | ||
|
||
set(${OUT_LIST} ${DEFINE_RTTI} PARENT_SCOPE) | ||
endfunction() | ||
|
||
function(flame_get_exception_defines EXCEPTIONS_ON OUT_LIST) | ||
if(EXCEPTIONS_ON) | ||
set(DEFINE_EXCEPTIONS | ||
CMAKE_RESOLVER_EXCEPTIONS_ENABLED=1 | ||
CMAKE_RESOLVER_EXCEPTIONS_DISABLED=0) | ||
else() | ||
set(DEFINE_EXCEPTIONS | ||
CMAKE_RESOLVER_EXCEPTIONS_ENABLED=0 | ||
CMAKE_RESOLVER_EXCEPTIONS_DISABLED=1) | ||
endif() | ||
|
||
set(${OUT_LIST} ${DEFINE_EXCEPTIONS} PARENT_SCOPE) | ||
endfunction() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
generate_random_id(CMAKE_RESOLVER_COMPILER_CLANG_ID) | ||
|
||
set(FLAME_DEFINE_COMPILER_CLANG | ||
CMAKE_RESOLVER_COMPILER_CLANG=${CMAKE_RESOLVER_COMPILER_CLANG_ID}) | ||
|
||
if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||
OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")) | ||
message(STATUS "Detect clang") | ||
|
||
set(FLAME_DEFINE_EXPORT "CMAKE_RESOLVER_EXPORT=__attribute__((visibility(default)))") | ||
|
||
set(CMAKE_RESOLVER_COMPILER_CURRENT_ID ${CMAKE_RESOLVER_COMPILER_CLANG_ID}) | ||
|
||
set(FLAME_FLAG_ALL_EXPORT "-fvisibility=default") | ||
set(FLAME_FLAG_NO_EXPORT "-fvisibility=hidden") | ||
|
||
if(CMAKE_CXX_COMPILER) | ||
set(FLAME_CXX_FLAG_NO_RTTI "-fno-rtti") | ||
set(FLAME_CXX_FLAG_RTTI "-frtti") | ||
|
||
set(FLAME_CXX_FLAG_NO_EXCEPTIONS "-fno-cxx-exceptions") | ||
set(FLAME_CXX_FLAG_EXCEPTIONS "-fcxx-exceptions") | ||
endif() | ||
endif() | ||
|
||
function(flame_shared_set_export_symbols_clang TARGET_NAME) | ||
flame_shared_set_export_symbols_gcc(${TARGET_NAME}) | ||
endfunction() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
generate_random_id(CMAKE_RESOLVER_COMPILER_GCC_ID) | ||
|
||
set(FLAME_DEFINE_COMPILER_GCC | ||
CMAKE_RESOLVER_COMPILER_GCC=${CMAKE_RESOLVER_COMPILER_GCC_ID}) | ||
|
||
if(("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") | ||
OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")) | ||
message(STATUS "Detect GCC") | ||
|
||
set(FLAME_DEFINE_EXPORT "CMAKE_RESOLVER_EXPORT=__attribute__((visibility(\"default\")))") | ||
|
||
set(CMAKE_RESOLVER_COMPILER_CURRENT_ID ${CMAKE_RESOLVER_COMPILER_GCC_ID}) | ||
|
||
set(FLAME_FLAG_ALL_EXPORT "-fvisibility=default") | ||
set(FLAME_FLAG_NO_EXPORT "-fvisibility=hidden") | ||
|
||
if(CMAKE_CXX_COMPILER) | ||
set(FLAME_CXX_FLAG_NO_RTTI "-fno-rtti") | ||
set(FLAME_CXX_FLAG_RTTI "") | ||
|
||
set(FLAME_CXX_FLAG_NO_EXCEPTIONS "-fno-exceptions") | ||
set(FLAME_CXX_FLAG_EXCEPTIONS "-fexceptions") | ||
endif() | ||
endif() | ||
|
||
function(flame_shared_set_export_symbols_gcc TARGET_NAME) | ||
target_compile_options(${TARGET_NAME} PRIVATE ${FLAME_FLAG_ALL_EXPORT}) | ||
endfunction() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
generate_random_id(CMAKE_RESOLVER_COMPILER_MSVC_ID) | ||
|
||
set(FLAME_DEFINE_COMPILER_MSVC | ||
CMAKE_RESOLVER_COMPILER_MSVC=${CMAKE_RESOLVER_COMPILER_MSVC_ID}) | ||
|
||
if(("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC") | ||
OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")) | ||
message(STATUS "Detect CL.EXE") | ||
|
||
set(FLAME_DEFINE_EXPORT "CMAKE_RESOLVER_EXPORT=__declspec(dllexport)") | ||
|
||
set(CMAKE_RESOLVER_COMPILER_CURRENT_ID ${CMAKE_RESOLVER_COMPILER_MSVC_ID}) | ||
|
||
set(FLAME_FLAG_BIG_OBJECT "/bigobj") | ||
|
||
if(CMAKE_CXX_COMPILER) | ||
set(FLAME_CXX_FLAG_NO_RTTI "/GR") | ||
set(FLAME_CXX_FLAG_RTTI "/GR-") | ||
|
||
set(FLAME_CXX_FLAG_NO_EXCEPTIONS "/EHsc-") | ||
set(FLAME_CXX_FLAG_EXCEPTIONS "/EHsc") | ||
endif() | ||
endif() | ||
|
||
function(flame_shared_set_export_symbols_msvc TARGET_NAME) | ||
target_compile_options(${TARGET_NAME} PRIVATE ${FLAME_FLAG_BIG_OBJECT}) | ||
set_target_properties(${TARGET_NAME} | ||
PROPERTIES | ||
WINDOWS_EXPORT_ALL_SYMBOLS ON) | ||
endfunction() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.