Skip to content

Instantly share code, notes, and snippets.

View scivision's full-sized avatar
💭
I will be slow to respond.

scivision

💭
I will be slow to respond.
View GitHub Profile
@scivision
scivision / CMakeLists.txt
Last active May 25, 2025 03:58
time_t Year 2038 test with CMake, including _TIME_BITS=64
cmake_minimum_required(VERSION 3.20)
project(lang LANGUAGES C)
include(CheckSourceRuns)
include(CheckTypeSize)
check_type_size("time_t" TIME_T_SIZE)
if(NOT TIME_T_SIZE GREATER_EQUAL 8)
@scivision
scivision / BaslerPyPylon.py
Created March 10, 2025 20:25
PyPylon with Basler camera
#!/usr/bin/env python3
import pypylon
from matplotlib.pyplot import figure,draw,pause
#
Nblock = 10 # TODO workaround for Basler too many frames error
Nblocks = 100 # arbitrary number of frames to plot
def connect(camdev,camind=0):
@scivision
scivision / CMakeLists.txt
Last active February 11, 2025 19:08
MUMPS example via find_packge(MUMPS CONFIG)
cmake_minimum_required(VERSION 3.19)
project(MUMPS_example
LANGUAGES C Fortran
)
enable_testing()
file(GENERATE OUTPUT ${PROJECT_BINARY_DIR}/.gitignore CONTENT "*")
@scivision
scivision / CMakeLists.txt
Last active February 5, 2025 14:51
Fix find_package(Curses) in CMake to work with a minimal example in C
cmake_minimum_required(VERSION 3.18)
project(CursesDemo LANGUAGES C)
include(curses.cmake)
add_executable(test_curses test_curses.c)
target_link_libraries(test_curses PRIVATE Curses::Curses)
@scivision
scivision / execute_process_win32.cmake
Created January 30, 2025 13:48
CMake execute_process on Windows with paths having spaces
# Toy example--execute_process() on Windows is challenging to handle paths with spaces
# Non-Winows sh -c just works.
set(setvars "set CC=gcc")
set(cmd "cc main.c")
set(cmd $ENV{COMSPEC} /c "${setvars} && ${cmd}")
string(REPLACE "C:/Program Files/" "C:/Progra~1/" cmd "$cmd}")
string(REPLACE "C:/Program Files (x86)/" "C:/Progra~2/" cmd "${cmd}")
@scivision
scivision / .gitignore
Last active January 27, 2025 14:35
Matlab buildtool MEX standalone example
.buildtool/
@scivision
scivision / CMakeLists.txt
Last active January 10, 2025 01:21
nanosleep() for Visual Studio MSVC compiler on Windows
cmake_minimum_required(VERSION 3.15)
project(SleepDemo LANGUAGES C CXX)
enable_testing()
include(CheckSymbolExists)
set(CMAKE_C_STANDARD 11)
@scivision
scivision / CMakeLists.txt
Last active February 5, 2025 01:02
Identify if CPU is x86_64v3 capable
cmake_minimum_required(VERSION 3.19...3.31)
project(InstructionSet LANGUAGES CXX)
set(CMAKE_CXX_SCAN_FOR_MODULES OFF)
include(CheckIncludeFileCXX)
set(CMAKE_CXX_STANDARD 11)
@scivision
scivision / CMakeLists.txt
Last active November 18, 2024 10:35
CMake add_compile_option() SHELL: to allow spaces in options, including generator expressions. Useful for Intel oneAPI.
cmake_minimum_required(VERSION 3.15)
project(opt LANGUAGES Fortran)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# https://www.intel.com/content/www/us/en/docs/fortran-compiler/developer-guide-reference/2024-2/warn.html
# SHELL: allows using
# * spaces in compiler options (especially important for Intel oneAPI
# * repeated option prefix, that might otherwise get deduplicated incorrectly
@scivision
scivision / CMakeLists.txt
Last active April 25, 2025 15:09
Xcode 16 Homebrew GCC 14.2 breaks with CMake
cmake_minimum_required(VERSION 3.20)
project(min LANGUAGES CXX)
set(CMAKE_CXX_SCAN_FOR_MODULES OFF)
# set OFF if not using C++ modules, or it can trip similar compiler errors due to "-fmodules-ts" flags auto-added when ON.
message(STATUS "CMAKE_OSX_SYSROOT ${CMAKE_OSX_SYSROOT}")
foreach(i IN ITEMS OS_NAME OS_VERSION OS_RELEASE OS_PLATFORM)