Skip to content

Commit 7e19a55

Browse files
committed
Add intel triplets for linux
1 parent a0a67f2 commit 7e19a55

File tree

4 files changed

+125
-2
lines changed

4 files changed

+125
-2
lines changed

vcpkg.just

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ VCPKG_DEFAULT_TRIPLET := if os_family() == "windows" {
2222
cmake_preset := VCPKG_DEFAULT_TRIPLET
2323

2424
VCPKG_DEFAULT_HOST_TRIPLET := VCPKG_DEFAULT_TRIPLET
25-
vcpkg_root := env('VCPKG_ROOT', join(justfile_directory(), "..", "vcpkg"))
25+
vcpkg_root := env('VCPKG_ROOT', join(justfile_directory(), "vcpkg"))
2626
in_git_repo := path_exists(join(justfile_directory(), ".git"))
2727

2828
[windows]
@@ -32,7 +32,7 @@ download_vcpkg_bin:
3232

3333
[unix]
3434
download_vcpkg_bin:
35-
rm -r '{{join(justfile_directory(), "vcpkg")}}'
35+
- rm -r '{{join(justfile_directory(), "vcpkg")}}'
3636
git clone https://github.com/microsoft/vcpkg.git '{{join(justfile_directory(), "vcpkg")}}'
3737
curl -L --fail --show-error '{{vcpkg_tool_url}}' -o '{{join(justfile_directory(), "vcpkg", "vcpkg")}}'
3838
chmod +x '{{join(justfile_directory(), "vcpkg", "vcpkg")}}'
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
if(NOT _VCPKG_LINUX_TOOLCHAIN)
2+
set(_VCPKG_LINUX_TOOLCHAIN 1)
3+
4+
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
5+
set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "")
6+
endif()
7+
8+
set(CMAKE_SYSTEM_NAME Linux CACHE STRING "")
9+
10+
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
11+
set(CMAKE_SYSTEM_PROCESSOR x86_64 CACHE STRING "")
12+
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
13+
set(CMAKE_SYSTEM_PROCESSOR x86 CACHE STRING "")
14+
string(APPEND VCPKG_C_FLAGS " -m32")
15+
string(APPEND VCPKG_CXX_FLAGS " -m32")
16+
endif()
17+
18+
# if(NOT INTEL_INSTALL_PATH)
19+
# set(INTEL_INSTALL_PATH /tools/toolchains/intel/oneapi/compiler/latest)
20+
# endif()
21+
# set(INTEL_PATH ${INTEL_INSTALL_PATH}/bin/)
22+
# set(INTEL_LLVM_PATH ${INTEL_INSTALL_PATH}/bin/compiler/)
23+
24+
# set(ENV{LD_LIBRARY_PATH} "${INTEL_PATH}/compiler/lib/intel64_lin:$ENV{LD_LIBRARY_PATH}")
25+
set(CMAKE_C_COMPILER ${INTEL_PATH}icx CACHE FILEPATH "")
26+
set(CMAKE_ASM_COMPILER ${INTEL_PATH}icx CACHE FILEPATH "")
27+
set(CMAKE_CXX_COMPILER ${INTEL_PATH}icpx CACHE FILEPATH "")
28+
set(CMAKE_Fortran_COMPILER ${INTEL_PATH}ifx CACHE FILEPATH "")
29+
set(CMAKE_RANLIB ${INTEL_LLVM_PATH}llvm-ranlib CACHE FILEPATH "")
30+
set(CMAKE_AR ${INTEL_LLVM_PATH}llvm-ar CACHE FILEPATH "")
31+
32+
set(LINKER_EXECUTABLE ${INTEL_LLVM_PATH}lld CACHE FILEPATH "")
33+
set(CMAKE_C_FLAGS "${VCPKG_C_FLAGS} ${CMAKE_C_FLAGS}" CACHE STRING "")
34+
set(CMAKE_CXX_FLAGS "${VCPKG_CXX_FLAGS} ${CMAKE_CXX_FLAGS}" CACHE STRING "")
35+
36+
# set(HAVE_LIBM "${INTEL_INSTALL_PATH}/lib/libimf.a" CACHE FILEPATH "")
37+
set(CMAKE_EXE_LINKER_FLAGS "-static-intel -static-libstdc++ -static-libgcc ${VCPKG_LINKER_FLAGS}" CACHE STRING "" FORCE)
38+
set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} CACHE STRING "" FORCE)
39+
set(CMAKE_MODULE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} CACHE STRING "" FORCE)
40+
41+
set(CMAKE_C_VISIBILITY_PRESET hidden)
42+
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
43+
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
44+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
45+
46+
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY CACHE STRING "")
47+
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY CACHE STRING "")
48+
49+
get_property(_CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
50+
51+
if(NOT _CMAKE_IN_TRY_COMPILE)
52+
string(APPEND CMAKE_C_FLAGS_INIT " -fPIC ${VCPKG_C_FLAGS} ")
53+
string(APPEND CMAKE_CXX_FLAGS_INIT " -fPIC ${VCPKG_CXX_FLAGS} ")
54+
string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ")
55+
string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ")
56+
string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ")
57+
string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ")
58+
59+
string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ")
60+
string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ")
61+
62+
if(VCPKG_CRT_LINKAGE STREQUAL "static")
63+
string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT "-static ")
64+
string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT "-static ")
65+
endif()
66+
67+
string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ")
68+
string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ")
69+
string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ")
70+
string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ")
71+
endif()
72+
endif()
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
set(VCPKG_TARGET_ARCHITECTURE x64)
2+
set(VCPKG_CRT_LINKAGE static)
3+
set(VCPKG_LIBRARY_LINKAGE static)
4+
set(VCPKG_CMAKE_SYSTEM_NAME Linux)
5+
set(CMAKE_SYSTEM_PROCESSOR x86_64)
6+
7+
set(HOST x86_64-unknown-linux-gnu CACHE STRING "")
8+
set(CROSS /tools/toolchains/${HOST}/bin/${HOST}-)
9+
set(INTEL_PATH /tools/ifort/2011u8/x86_64/bin/intel64)
10+
11+
set(ENV{LD_LIBRARY_PATH} "/tools/ifort/2011u8/x86_64/compiler/lib/intel64:$ENV{LD_LIBRARY_PATH}")
12+
set(ENV{INTEL_LICENSE_FILE} "/tools/ifort/2011u8/bin/COM_L_CMP_FOR_FRB4-9PVG3MLB.lic")
13+
14+
set(CMAKE_C_COMPILER ${CROSS}gcc CACHE FILEPATH "")
15+
set(CMAKE_ASM_COMPILER ${CROSS}gcc CACHE FILEPATH "")
16+
set(CMAKE_CXX_COMPILER ${CROSS}g++ CACHE FILEPATH "")
17+
set(CMAKE_Fortran_COMPILER ${INTEL_PATH}/ifort CACHE FILEPATH "")
18+
set(CMAKE_RANLIB ${CROSS}ranlib CACHE FILEPATH "")
19+
set(CMAKE_STRIP ${CROSS}strip CACHE FILEPATH "")
20+
set(CMAKE_NM ${CROSS}gcc-nm CACHE FILEPATH "")
21+
set(CMAKE_AR ${CROSS}gcc-ar CACHE FILEPATH "")
22+
set(CMAKE_RANLIB ${CROSS}gcc-ranlib CACHE FILEPATH "")
23+
set(CMAKE_OBJDUMP ${CROSS}objdump CACHE FILEPATH "")
24+
25+
set(LINKER_EXECUTABLE ld.gold CACHE FILEPATH "")
26+
set(CMAKE_C_FLAGS "${VCPKG_C_FLAGS} ${CMAKE_C_FLAGS}" CACHE STRING "")
27+
set(CMAKE_CXX_FLAGS "${VCPKG_CXX_FLAGS} ${CMAKE_CXX_FLAGS}" CACHE STRING "")
28+
set(CMAKE_EXE_LINKER_FLAGS "-static-libstdc++ -static-libgcc ${VCPKG_LINKER_FLAGS}" CACHE STRING "" FORCE)
29+
set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} CACHE STRING "" FORCE)
30+
set(CMAKE_MODULE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} CACHE STRING "" FORCE)
31+
set(CMAKE_SYSROOT /tools/toolchains/${HOST}/${HOST}/sysroot CACHE PATH "" FORCE)
32+
33+
# make sure the static openmp library is used
34+
set(OpenMP_gomp_LIBRARY "/tools/toolchains/${HOST}/${HOST}/lib64/libgomp.a" CACHE STRING "")
35+
36+
set(CMAKE_C_VISIBILITY_PRESET hidden)
37+
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
38+
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
39+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
40+
41+
#set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
42+
#set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
set(VCPKG_TARGET_ARCHITECTURE x64 CACHE STRING "")
2+
set(VCPKG_CRT_LINKAGE dynamic CACHE STRING "")
3+
set(VCPKG_LIBRARY_LINKAGE static CACHE STRING "")
4+
set(VCPKG_CMAKE_SYSTEM_NAME Linux CACHE STRING "")
5+
6+
set(VCPKG_C_FLAGS "-fp-model=precise" CACHE STRING "" FORCE)
7+
set(VCPKG_CXX_FLAGS "-fp-model=precise" CACHE STRING "" FORCE)
8+
set(VCPKG_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "" FORCE)
9+
set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/toolchain-linux-intel.cmake" CACHE FILEPATH "")

0 commit comments

Comments
 (0)