Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
39acd4a3
Commit
39acd4a3
authored
8 years ago
by
Alexander Alekhin
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6866 from alalek:gnu_toolchain
parents
a6b33c35
73e16dbc
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
199 additions
and
87 deletions
+199
-87
aarch64-gnu.toolchain.cmake
platforms/linux/aarch64-gnu.toolchain.cmake
+4
-0
arm-gnueabi.toolchain.cmake
platforms/linux/arm-gnueabi.toolchain.cmake
+2
-87
arm.toolchain.cmake
platforms/linux/arm.toolchain.cmake
+87
-0
gnu.toolchain.cmake
platforms/linux/gnu.toolchain.cmake
+106
-0
No files found.
platforms/linux/aarch64-gnu.toolchain.cmake
0 → 100644
View file @
39acd4a3
set
(
CMAKE_SYSTEM_PROCESSOR aarch64
)
set
(
GCC_COMPILER_VERSION
"4.8"
CACHE STRING
"GCC Compiler version"
)
set
(
GNU_MACHINE
"aarch64-linux-gnu"
CACHE STRING
"GNU compiler triple"
)
include
(
"
${
CMAKE_CURRENT_LIST_DIR
}
/arm.toolchain.cmake"
)
This diff is collapsed.
Click to expand it.
platforms/linux/arm-gnueabi.toolchain.cmake
View file @
39acd4a3
set
(
CMAKE_SYSTEM_NAME Linux
)
set
(
CMAKE_SYSTEM_VERSION 1
)
set
(
CMAKE_SYSTEM_PROCESSOR arm
)
set
(
GCC_COMPILER_VERSION
"4.6"
CACHE STRING
"GCC Compiler version"
)
set
(
FLOAT_ABI_SUFFIX
""
)
if
(
NOT SOFTFP
)
set
(
FLOAT_ABI_SUFFIX
"hf"
)
endif
()
find_program
(
CMAKE_C_COMPILER NAMES arm-linux-gnueabi
${
FLOAT_ABI_SUFFIX
}
-gcc-
${
GCC_COMPILER_VERSION
}
)
find_program
(
CMAKE_CXX_COMPILER NAMES arm-linux-gnueabi
${
FLOAT_ABI_SUFFIX
}
-g++-
${
GCC_COMPILER_VERSION
}
)
set
(
ARM_LINUX_SYSROOT /usr/arm-linux-gnueabi
${
FLOAT_ABI_SUFFIX
}
CACHE PATH
"ARM cross compilation system root"
)
set
(
CMAKE_CXX_FLAGS
""
CACHE STRING
"c++ flags"
)
set
(
CMAKE_C_FLAGS
""
CACHE STRING
"c flags"
)
set
(
CMAKE_SHARED_LINKER_FLAGS
""
CACHE STRING
"shared linker flags"
)
set
(
CMAKE_MODULE_LINKER_FLAGS
""
CACHE STRING
"module linker flags"
)
set
(
CMAKE_EXE_LINKER_FLAGS
"-Wl,-z,nocopyreloc"
CACHE STRING
"executable linker flags"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-mthumb -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi"
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
-mthumb -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi"
)
set
(
CMAKE_SHARED_LINKER_FLAGS
"-Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
${
CMAKE_SHARED_LINKER_FLAGS
}
"
)
set
(
CMAKE_MODULE_LINKER_FLAGS
"-Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
${
CMAKE_MODULE_LINKER_FLAGS
}
"
)
set
(
CMAKE_EXE_LINKER_FLAGS
"-Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
${
CMAKE_EXE_LINKER_FLAGS
}
"
)
if
(
USE_NEON
)
message
(
WARNING
"You use obsolete variable USE_NEON to enable NEON instruction set. Use -DENABLE_NEON=ON instead."
)
set
(
ENABLE_NEON TRUE
)
elseif
(
USE_VFPV3
)
message
(
WARNING
"You use obsolete variable USE_VFPV3 to enable VFPV3 instruction set. Use -DENABLE_VFPV3=ON instead."
)
set
(
ENABLE_VFPV3 TRUE
)
endif
()
set
(
CMAKE_FIND_ROOT_PATH
${
CMAKE_FIND_ROOT_PATH
}
${
ARM_LINUX_SYSROOT
}
)
if
(
EXISTS
${
CUDA_TOOLKIT_ROOT_DIR
}
)
set
(
CMAKE_FIND_ROOT_PATH
${
CMAKE_FIND_ROOT_PATH
}
${
CUDA_TOOLKIT_ROOT_DIR
}
)
endif
()
set
(
CMAKE_SKIP_RPATH TRUE CACHE BOOL
"If set, runtime paths are not added when using shared libraries."
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY
)
# macro to find programs on the host OS
macro
(
find_host_program
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER
)
if
(
CMAKE_HOST_WIN32
)
SET
(
WIN32 1
)
SET
(
UNIX
)
elseif
(
CMAKE_HOST_APPLE
)
SET
(
APPLE 1
)
SET
(
UNIX
)
endif
()
find_program
(
${
ARGN
}
)
SET
(
WIN32
)
SET
(
APPLE
)
SET
(
UNIX 1
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
endmacro
()
# macro to find packages on the host OS
macro
(
find_host_package
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER
)
if
(
CMAKE_HOST_WIN32
)
SET
(
WIN32 1
)
SET
(
UNIX
)
elseif
(
CMAKE_HOST_APPLE
)
SET
(
APPLE 1
)
SET
(
UNIX
)
endif
()
find_package
(
${
ARGN
}
)
SET
(
WIN32
)
SET
(
APPLE
)
SET
(
UNIX 1
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
endmacro
()
set
(
GNU_MACHINE
"arm-linux-gnueabi"
CACHE STRING
"GNU compiler triple"
)
include
(
"
${
CMAKE_CURRENT_LIST_DIR
}
/arm.toolchain.cmake"
)
This diff is collapsed.
Click to expand it.
platforms/linux/arm.toolchain.cmake
0 → 100644
View file @
39acd4a3
if
(
COMMAND toolchain_save_config
)
return
()
# prevent recursive call
endif
()
set
(
CMAKE_SYSTEM_NAME Linux
)
set
(
CMAKE_SYSTEM_VERSION 1
)
if
(
NOT DEFINED CMAKE_SYSTEM_PROCESSOR
)
set
(
CMAKE_SYSTEM_PROCESSOR arm
)
else
()
#message("CMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}")
endif
()
include
(
"
${
CMAKE_CURRENT_LIST_DIR
}
/gnu.toolchain.cmake"
)
if
(
CMAKE_SYSTEM_PROCESSOR STREQUAL arm AND NOT ARM_IGNORE_FP
)
set
(
FLOAT_ABI_SUFFIX
""
)
if
(
NOT SOFTFP
)
set
(
FLOAT_ABI_SUFFIX
"hf"
)
endif
()
endif
()
if
(
NOT
"x
${
GCC_COMPILER_VERSION
}
"
STREQUAL
"x"
)
set
(
__GCC_VER_SUFFIX
"-
${
GCC_COMPILER_VERSION
}
"
)
endif
()
if
(
NOT DEFINED CMAKE_C_COMPILER
)
find_program
(
CMAKE_C_COMPILER NAMES
${
GNU_MACHINE
}${
FLOAT_ABI_SUFFIX
}
-gcc
${
__GCC_VER_SUFFIX
}
)
else
()
#message(WARNING "CMAKE_C_COMPILER=${CMAKE_C_COMPILER} is defined")
endif
()
if
(
NOT DEFINED CMAKE_CXX_COMPILER
)
find_program
(
CMAKE_CXX_COMPILER NAMES
${
GNU_MACHINE
}${
FLOAT_ABI_SUFFIX
}
-g++
${
__GCC_VER_SUFFIX
}
)
else
()
#message(WARNING "CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} is defined")
endif
()
if
(
NOT DEFINED ARM_LINUX_SYSROOT AND DEFINED GNU_MACHINE
)
set
(
ARM_LINUX_SYSROOT /usr/
${
GNU_MACHINE
}${
FLOAT_ABI_SUFFIX
}
)
endif
()
if
(
NOT DEFINED CMAKE_CXX_FLAGS
)
set
(
CMAKE_CXX_FLAGS
""
CACHE INTERAL
""
)
set
(
CMAKE_C_FLAGS
""
CACHE INTERAL
""
)
set
(
CMAKE_SHARED_LINKER_FLAGS
""
CACHE INTERAL
""
)
set
(
CMAKE_MODULE_LINKER_FLAGS
""
CACHE INTERAL
""
)
set
(
CMAKE_EXE_LINKER_FLAGS
""
CACHE INTERAL
""
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi"
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
-fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi"
)
if
(
CMAKE_SYSTEM_PROCESSOR STREQUAL arm
)
set
(
CMAKE_CXX_FLAGS
"-mthumb
${
CMAKE_CXX_FLAGS
}
"
)
set
(
CMAKE_C_FLAGS
"-mthumb
${
CMAKE_C_FLAGS
}
"
)
set
(
CMAKE_EXE_LINKER_FLAGS
"
${
CMAKE_EXE_LINKER_FLAGS
}
-Wl,-z,nocopyreloc"
)
endif
()
if
(
CMAKE_SYSTEM_PROCESSOR STREQUAL arm
)
set
(
ARM_LINKER_FLAGS
"-Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now"
)
elseif
(
CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64
)
set
(
ARM_LINKER_FLAGS
"-Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now"
)
endif
()
set
(
CMAKE_SHARED_LINKER_FLAGS
"
${
ARM_LINKER_FLAGS
}
${
CMAKE_SHARED_LINKER_FLAGS
}
"
)
set
(
CMAKE_MODULE_LINKER_FLAGS
"
${
ARM_LINKER_FLAGS
}
${
CMAKE_MODULE_LINKER_FLAGS
}
"
)
set
(
CMAKE_EXE_LINKER_FLAGS
"
${
ARM_LINKER_FLAGS
}
${
CMAKE_EXE_LINKER_FLAGS
}
"
)
else
()
#message(WARNING "CMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS}' is defined")
endif
()
if
(
USE_NEON
)
message
(
WARNING
"You use obsolete variable USE_NEON to enable NEON instruction set. Use -DENABLE_NEON=ON instead."
)
set
(
ENABLE_NEON TRUE
)
elseif
(
USE_VFPV3
)
message
(
WARNING
"You use obsolete variable USE_VFPV3 to enable VFPV3 instruction set. Use -DENABLE_VFPV3=ON instead."
)
set
(
ENABLE_VFPV3 TRUE
)
endif
()
set
(
CMAKE_FIND_ROOT_PATH
${
CMAKE_FIND_ROOT_PATH
}
${
ARM_LINUX_SYSROOT
}
)
if
(
EXISTS
${
CUDA_TOOLKIT_ROOT_DIR
}
)
set
(
CMAKE_FIND_ROOT_PATH
${
CMAKE_FIND_ROOT_PATH
}
${
CUDA_TOOLKIT_ROOT_DIR
}
)
endif
()
set
(
TOOLCHAIN_CONFIG_VARS
${
TOOLCHAIN_CONFIG_VARS
}
ARM_LINUX_SYSROOT
ENABLE_NEON
ENABLE_VFPV3
CUDA_TOOLKIT_ROOT_DIR
)
toolchain_save_config
()
This diff is collapsed.
Click to expand it.
platforms/linux/gnu.toolchain.cmake
0 → 100644
View file @
39acd4a3
cmake_minimum_required
(
VERSION 2.8
)
# load settings in case of "try compile"
set
(
TOOLCHAIN_CONFIG_FILE
"
${
CMAKE_BINARY_DIR
}${
CMAKE_FILES_DIRECTORY
}
/toolchain.config.cmake"
)
get_property
(
__IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE
)
if
(
__IN_TRY_COMPILE
)
include
(
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/../toolchain.config.cmake"
OPTIONAL
)
# CMAKE_BINARY_DIR is different
macro
(
toolchain_save_config
)
# nothing
endmacro
()
else
()
macro
(
toolchain_save_config
)
set
(
__config
"#message(
\"
Load TOOLCHAIN config...
\"
)
\n
"
)
get_cmake_property
(
__variableNames VARIABLES
)
set
(
__vars_list
${
ARGN
}
)
list
(
APPEND __vars_list
${
TOOLCHAIN_CONFIG_VARS
}
CMAKE_SYSTEM_NAME
CMAKE_SYSTEM_VERSION
CMAKE_SYSTEM_PROCESSOR
CMAKE_C_COMPILER
CMAKE_CXX_COMPILER
CMAKE_C_FLAGS
CMAKE_CXX_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS
CMAKE_SKIP_RPATH
CMAKE_FIND_ROOT_PATH
GCC_COMPILER_VERSION
)
foreach
(
__var
${
__variableNames
}
)
foreach
(
_v
${
__vars_list
}
)
if
(
"x
${
__var
}
"
STREQUAL
"x
${
_v
}
"
)
if
(
${
__var
}
MATCHES
" "
)
set
(
__config
"
${
__config
}
set(
${
__var
}
\"
${${
__var
}}
\"
)
\n
"
)
else
()
set
(
__config
"
${
__config
}
set(
${
__var
}
${${
__var
}}
)
\n
"
)
endif
()
endif
()
endforeach
()
endforeach
()
if
(
EXISTS
"
${
TOOLCHAIN_CONFIG_FILE
}
"
)
file
(
READ
"
${
TOOLCHAIN_CONFIG_FILE
}
"
__config_old
)
endif
()
if
(
"
${
__config_old
}
"
STREQUAL
"
${
__config
}
"
)
# nothing
else
()
#message("Update TOOLCHAIN config: ${__config}")
file
(
WRITE
"
${
TOOLCHAIN_CONFIG_FILE
}
"
"
${
__config
}
"
)
endif
()
unset
(
__config
)
unset
(
__config_old
)
unset
(
__vars_list
)
unset
(
__variableNames
)
endmacro
()
endif
()
# IN_TRY_COMPILE
set
(
CMAKE_SKIP_RPATH TRUE
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY
)
# macro to find programs on the host OS
macro
(
find_host_program
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER
)
if
(
CMAKE_HOST_WIN32
)
SET
(
WIN32 1
)
SET
(
UNIX
)
elseif
(
CMAKE_HOST_APPLE
)
SET
(
APPLE 1
)
SET
(
UNIX
)
endif
()
find_program
(
${
ARGN
}
)
SET
(
WIN32
)
SET
(
APPLE
)
SET
(
UNIX 1
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
endmacro
()
# macro to find packages on the host OS
macro
(
find_host_package
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER
)
if
(
CMAKE_HOST_WIN32
)
SET
(
WIN32 1
)
SET
(
UNIX
)
elseif
(
CMAKE_HOST_APPLE
)
SET
(
APPLE 1
)
SET
(
UNIX
)
endif
()
find_package
(
${
ARGN
}
)
SET
(
WIN32
)
SET
(
APPLE
)
SET
(
UNIX 1
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
endmacro
()
set
(
CMAKE_SKIP_RPATH TRUE CACHE BOOL
"If set, runtime paths are not added when using shared libraries."
)
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment