Fix block-sparse to crs conversion on windows

Change-Id: I2aabdb68afc8152c5d8da157baf22faf8d8f80cf
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt
index aff218e..b3a7a96 100644
--- a/internal/ceres/CMakeLists.txt
+++ b/internal/ceres/CMakeLists.txt
@@ -144,6 +144,7 @@
   set_source_files_properties(cuda_kernels_bsm_to_crs.cu.cc PROPERTIES LANGUAGE CUDA)
   add_library(ceres_cuda_kernels STATIC cuda_kernels_vector_ops.cu.cc cuda_kernels_bsm_to_crs.cu.cc)
   target_compile_features(ceres_cuda_kernels PRIVATE cxx_std_14)
+  target_compile_definitions(ceres_cuda_kernels PRIVATE CERES_STATIC_DEFINE)
   # Enable __host__ / __device__ annotations in lambda declarations
   target_compile_options(ceres_cuda_kernels PRIVATE --extended-lambda)
   target_include_directories(ceres_cuda_kernels PRIVATE  ${Ceres_SOURCE_DIR}/internal  ${Ceres_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR})
diff --git a/internal/ceres/cuda_block_sparse_crs_view_test.cc b/internal/ceres/cuda_block_sparse_crs_view_test.cc
index e80d026..dd49ee8 100644
--- a/internal/ceres/cuda_block_sparse_crs_view_test.cc
+++ b/internal/ceres/cuda_block_sparse_crs_view_test.cc
@@ -30,6 +30,8 @@
 
 #include "ceres/cuda_block_sparse_crs_view.h"
 
+#include <numeric>
+
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
diff --git a/internal/ceres/cuda_kernels_bsm_to_crs.h b/internal/ceres/cuda_kernels_bsm_to_crs.h
index 90b4882..62a2477 100644
--- a/internal/ceres/cuda_kernels_bsm_to_crs.h
+++ b/internal/ceres/cuda_kernels_bsm_to_crs.h
@@ -39,8 +39,8 @@
 
 namespace ceres {
 namespace internal {
-class Block;
-class Cell;
+struct Block;
+struct Cell;
 
 // Compute structure of CRS matrix using block-sparse structure.
 // Arrays corresponding to CRS matrix are to be allocated by caller